Basic rice set up. Still need to add a way to reiably update the package lists and i need a launcher.
|
|
@ -0,0 +1,24 @@
|
|||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org>
|
||||
|
|
@ -0,0 +1,354 @@
|
|||
<img src="icon.svg" alt="Firefox GNOME theme" width="128" align="left"/>
|
||||
|
||||
# Firefox GNOME theme
|
||||
|
||||
[](https://github.com/rafaelmardojai/firefox-gnome-theme/blob/master/LICENSE)
|
||||
[](https://paypal.me/RafaelMardojaiCM)
|
||||
[](https://liberapay.com/rafaelmardojai/donate)
|
||||
|
||||
<br>
|
||||
|
||||
**A GNOME theme for Firefox**
|
||||
|
||||
This theme follows latest GNOME Adwaita style.
|
||||
|
||||
> [!WARNING]
|
||||
> ### Disclaimer:
|
||||
> Be aware that this theme might do things that are not supported by upstream Firefox. If you face an issue while using this theme, report it here first or test if it is reproducible in vanilla Firefox.
|
||||
>
|
||||
> If you are a software distribution maintainer, please do not ship these changes by default to your users unless you make it extremely clear that they are using a modified version of the Firefox UI.
|
||||
|
||||

|
||||
|
||||
## Description
|
||||
|
||||
This is a bunch of CSS code to make Firefox look closer to GNOME's native apps.
|
||||
|
||||
### Getting in Touch
|
||||
|
||||
Matrix room: [#firefox-gnome-theme:matrix.org](https://matrix.to/#/#firefox-gnome-theme:matrix.org)
|
||||
|
||||
### Firefox versions support
|
||||
|
||||
The `master` branch of this repo supports the current Firefox stable release `143`.
|
||||
|
||||
Theme versions compatible with older Firefox releases are preserved as git tags.
|
||||
|
||||
We also have the `beta` and `nightly` branches for fixes only applicable to the current Firefox beta and nightly versions.
|
||||
|
||||
# Installation
|
||||
|
||||
The most friendly way to get this theme is using the **Add Water** app.
|
||||
|
||||
<a href='https://flathub.org/apps/dev.qwery.AddWater'>
|
||||
<img width='240' alt='Get it on Flathub' src='https://flathub.org/api/badge?locale=en'/>
|
||||
</a>
|
||||
|
||||
## One command install with curl
|
||||
|
||||
To install this theme, you can run this command, which uses *curl* to download a script that will also download the latest released version of the theme (not the master version) and run the **auto-install** script for you.
|
||||
|
||||
> [!WARNING]
|
||||
> Always be careful when running scripts from the Internet.
|
||||
|
||||
```sh
|
||||
curl -s -o- https://raw.githubusercontent.com/rafaelmardojai/firefox-gnome-theme/master/scripts/install-by-curl.sh | bash
|
||||
```
|
||||
|
||||
## Installation scripts
|
||||
|
||||
If you want to use other version of the theme than the stable one you can manually download the theme and run its install scripts.
|
||||
|
||||
First you need to grab a fresh copy of the theme repository by cloning it with git.
|
||||
|
||||
1. Clone this repo and enter folder:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/rafaelmardojai/firefox-gnome-theme.git
|
||||
cd firefox-gnome-theme
|
||||
```
|
||||
2. Checkout a git branch or tag if needed, otherwise use `master` and ignore this step.
|
||||
```sh
|
||||
git checkout beta # Set beta branch
|
||||
git checkout v78.1 # Set v78.1 tag
|
||||
```
|
||||
|
||||
This theme provides two installation scripts in addition to the curled one.
|
||||
|
||||
### Auto install script
|
||||
|
||||
This script will look for Firefox profiles from various known locations (`~/.mozilla/firefox/`, Flatpak, Snap, etc) and install the theme in each one.
|
||||
|
||||
You can execute it by running:
|
||||
|
||||
```sh
|
||||
./scripts/auto-install.sh
|
||||
```
|
||||
|
||||
### Manual install script
|
||||
|
||||
This script will only install the theme into the profiles found in the default Firefox folder `~/.mozilla/firefox/`. The script accepts various flags to change its behavior.
|
||||
|
||||
Here are some examples of how to use it:
|
||||
|
||||
```sh
|
||||
./scripts/install.sh # Standard
|
||||
./scripts/install.sh -p pc8577yz.default-release # Only install in a profile named pc8577yz.default-release
|
||||
./scripts/install.sh -f ~/.var/app/org.mozilla.firefox/.mozilla/firefox # Flatpak
|
||||
./scripts/install.sh -f ~/snap/firefox/common/.mozilla/firefox #Snap
|
||||
```
|
||||
|
||||
#### Script options
|
||||
- `-f <firefox_folder_path>` *optional*
|
||||
- Set custom Firefox folder path, for example `~/.mozilla/icecat/`.
|
||||
- Default: `~/.mozilla/firefox/`
|
||||
|
||||
- `-p <profile_name>` *optional*
|
||||
- Set custom profile name, for example `e0j6yb0p.default-nightly`.
|
||||
- Default: All the profiles found in the firefox folder
|
||||
|
||||
### Advanced notes
|
||||
<details>
|
||||
<summary>Expand</summary>
|
||||
|
||||
If you want to checkout the theme version tag matching you Firefox version you can run:
|
||||
|
||||
```sh
|
||||
git checkout v$(firefox --version | cut -d ' ' -f 3 | cut -d '.' -f 1) # Using Firefox version
|
||||
```
|
||||
</details>
|
||||
|
||||
## Package managers
|
||||
|
||||
### Arch Linux
|
||||
|
||||
1. Install the [AUR package](https://aur.archlinux.org/packages/firefox-gnome-theme) `firefox-gnome-theme`
|
||||
2. Follow the instructions at `cat /usr/share/doc/firefox-gnome-theme/INSTALL.md`
|
||||
|
||||
## Manual installation
|
||||
<details>
|
||||
<summary>Expand</summary>
|
||||
|
||||
1. Go to `about:support` in Firefox.
|
||||
|
||||
2. Application Basics > Profile Directory > Open Directory.
|
||||
|
||||
3. Open directory in a terminal.
|
||||
|
||||
4. Create a `chrome` directory if it doesn't exist:
|
||||
|
||||
```sh
|
||||
mkdir -p chrome
|
||||
cd chrome
|
||||
```
|
||||
|
||||
5. Clone this repo to a subdirectory:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/rafaelmardojai/firefox-gnome-theme.git
|
||||
```
|
||||
|
||||
6. Create single-line user CSS files if non-existent or empty (at least one line is needed for `sed`):
|
||||
|
||||
```sh
|
||||
[[ -s userChrome.css ]] || echo >> userChrome.css
|
||||
[[ -s userContent.css ]] || echo >> userContent.css
|
||||
```
|
||||
|
||||
7. Import this theme at the beginning of the CSS files (all `@import`s must come before any existing `@namespace` declarations):
|
||||
|
||||
```sh
|
||||
sed -i '1s/^/@import "firefox-gnome-theme\/userChrome.css";\n/' userChrome.css
|
||||
sed -i '1s/^/@import "firefox-gnome-theme\/userContent.css";\n/' userContent.css
|
||||
```
|
||||
|
||||
8. Symlink preferences file:
|
||||
|
||||
```sh
|
||||
cd .. # Go back to the profile directory
|
||||
ln -fs chrome/firefox-gnome-theme/configuration/user.js user.js
|
||||
```
|
||||
|
||||
9. Restart Firefox.
|
||||
|
||||
10. Open Firefox customization panel and move the new tab button to headerbar.
|
||||
|
||||
11. Be happy with your new gnomish Firefox.
|
||||
</details>
|
||||
|
||||
## Required Firefox preferences
|
||||
We provide a **user.js** configuration file in `configuration/user.js` that enables some preferences required by this theme to work.
|
||||
|
||||
You should already have this file installed if you followed one of the installation methods, but in any case be sure this preferences are enabled under `about:config`:
|
||||
|
||||
- `toolkit.legacyUserProfileCustomizations.stylesheets`
|
||||
|
||||
This preference is required to load the custom CSS in Firefox, otherwise the theme wouldn't work.
|
||||
|
||||
- `svg.context-properties.content.enabled`
|
||||
|
||||
This preference is required to recolor the icons, otherwise you will get black icons everywhere.
|
||||
|
||||
> For other non essential preferences checkout `configuration/user.js`.
|
||||
|
||||
## Updating
|
||||
|
||||
You can follow the installation script steps again to update the theme.
|
||||
|
||||
## Uninstalling
|
||||
1. Go to your profile folder. (Go to `about:support` in Firefox > Application Basics > Profile Directory > Open Directory)
|
||||
2. Remove `chrome` folder.
|
||||
3. Remove the unwanted preferences from your `user.js` inside your profile folder. The install script append the needed prefs in that file, you can check what preferences does it append by checking `configuration/user.js` in this repo.
|
||||
|
||||
## Enabling optional features
|
||||
Optional features can be enabled by creating new `boolean` preferences in `about:config`.
|
||||
|
||||
1. Go to the `about:config` page
|
||||
2. Type the key of the feature you want to enable
|
||||
3. Set it as a `boolean` and click on the add button
|
||||
4. Restart Firefox
|
||||
|
||||
### Features
|
||||
|
||||
- **Hide single tab** `gnomeTheme.hideSingleTab`
|
||||
|
||||
Hide the tab bar when only one tab is open.
|
||||
|
||||
> **Note:** You should move the new tab button out of the tabbar or it will be hidden when there is only one tab. You can rearrange the toolbars doing a right-click on any toolbar and selecting "Customize Toolbar…".
|
||||
|
||||
- **Normal width tabs** `gnomeTheme.normalWidthTabs`
|
||||
|
||||
Use normal width tabs as default Firefox.
|
||||
|
||||
- **Swap tab close button position** `gnomeTheme.swapTabClose`
|
||||
|
||||
By default the tab close buttons follows the position of the window controls, this preference reverts that behavior.
|
||||
|
||||
- **Bookmarks toolbar under tabs** `gnomeTheme.bookmarksToolbarUnderTabs`
|
||||
|
||||
Move Bookmarks toolbar under tabs.
|
||||
|
||||
- **Active tab contrast** `gnomeTheme.activeTabContrast`
|
||||
|
||||
Add more contrast to the active tab.
|
||||
|
||||
- **Close only selected tabs** `gnomeTheme.closeOnlySelectedTabs`
|
||||
|
||||
Show the close button on the selected tab only.
|
||||
|
||||
- **System icons** `gnomeTheme.systemIcons`
|
||||
|
||||
Use system theme icons instead of Adwaita icons included by theme.
|
||||
|
||||
> **Note:** This feature has a [known color bug](#icons-color-broken-with-system-icons).
|
||||
|
||||
|
||||
- **No themed Icons** `gnomeTheme.noThemedIcons`
|
||||
|
||||
Use default Firefox icons instead of the included icons.
|
||||
|
||||
|
||||
- **Symbolic tab icons** `gnomeTheme.symbolicTabIcons`
|
||||
|
||||
Make all tab icons look kinda like symbolic icons.
|
||||
|
||||
- **Hide WebRTC indicator** `gnomeTheme.hideWebrtcIndicator`
|
||||
|
||||
Hide redundant WebRTC indicator since GNOME provides their own privacy icons in the top right.
|
||||
|
||||
- **Hide unified extensions button** `gnomeTheme.hideUnifiedExtensions`
|
||||
|
||||
Hide unified extensions button from the navbar, you can also use `extensions.unifiedExtensions.enabled` instead, which is only going to work till Firefox 111.
|
||||
|
||||
- **Drag window from headerbar buttons** `gnomeTheme.dragWindowHeaderbarButtons`
|
||||
|
||||
Allow dragging the window from headerbar buttons.
|
||||
|
||||
> **Note:** This feature is BUGGED. It can activate the button with unpleasant behavior.
|
||||
|
||||
- **Tabs as headerbar** `gnomeTheme.tabsAsHeaderbar`
|
||||
|
||||
Place the tabs on the top of the window, and use the tabs bar to hold the window controls, like Firefox's standard tab bar.
|
||||
|
||||
> **Note:** Enabling with `gnomeTheme.hideSingleTab` will replace the single tab with a title bar.
|
||||
|
||||
- **OLED black theme** `gnomeTheme.oledBlack`
|
||||
|
||||
Change the dark theme into the black variant.
|
||||
|
||||
- **Show "List All Tabs" button on overflow** `gnomeTheme.allTabsButtonOnOverflow`
|
||||
|
||||
Show the `List All Tabs` button when the tabs bar is overflowing (when you have too many tabs that the width of the tabs no longer shrinks when new tabs are added).
|
||||
|
||||
- **Show "List All Tabs" button** `gnomeTheme.allTabsButton`
|
||||
|
||||
Show the `List All Tabs` button all the time, like stock Firefox.
|
||||
|
||||
- **Align tab title and icon to left** `gnomeTheme.tabAlignLeft`
|
||||
|
||||
Align the tab title and favicon to left of tab in place of center.
|
||||
|
||||
- **Bookmarks bar in fullscreen** `gnomeTheme.bookmarksOnFullscreen`
|
||||
|
||||
Show the bookmarks bar while in fullscreen.
|
||||
|
||||
### Extensions support
|
||||
|
||||
We also have optional features to enable support for some Firefox extensions.
|
||||
|
||||
> [!WARNING]
|
||||
> Note that extension support is maintained by the community, so requests to support new extensions are not allowed, and the included extensions may be broken until someone shows up to fix them.
|
||||
|
||||
- **Adaptive Tab Bar Colour support** `gnomeTheme.extensions.adaptiveTabBarColour`
|
||||
|
||||
> **Note:** Adaptive Tab Bar Colour presently hard-codes the colours for the home page (both normal as well as private windows). When navigating from the home page to any other page, the colour of the UI might momentarily switch to the original firefox home page colour before switching back to the expected colour (this is especially noticeable in private windows). This only happens when navigating from the homepage to another page, subsequent navigations should be unaffected.
|
||||
|
||||
## Known bugs
|
||||
|
||||
### CSD have sharp corners
|
||||
See upstream [bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1408360).
|
||||
|
||||
#### Wayland fix:
|
||||
1. Go to the `about:config` page
|
||||
2. Search for the `layers.acceleration.force-enabled` preference and set it to true.
|
||||
3. Now restart Firefox, and it should look good!
|
||||
|
||||
#### X11 fix:
|
||||
1. Go to the `about:config` page
|
||||
2. Type `mozilla.widget.use-argb-visuals`
|
||||
3. Set it as a `boolean` and click on the add button
|
||||
4. Now restart Firefox, and it should look good!
|
||||
|
||||
### Icons color broken with System icons
|
||||
Icons might appear black where they should be white on some systems. I have no idea why, but you can adjust them directly in the `system-icons.css` file, look for `--gnome-icons-hack-filter` & `--gnome-window-icons-hack-filter` vars and play with css filters.
|
||||
|
||||
## Development
|
||||
|
||||
If you wanna mess around the styles and change something, you might find these
|
||||
things useful.
|
||||
|
||||
To use the Inspector to debug the UI, open the developer tools (F12) on any
|
||||
page, go to options, check both of those:
|
||||
|
||||
- Enable browser chrome and add-on debugging toolboxes
|
||||
- Enable remote debugging
|
||||
|
||||
Now you can close those tools and press Ctrl+Alt+Shift+I to Inspect the browser
|
||||
UI.
|
||||
|
||||
Also you can inspect any GTK3 application, for example type this into a terminal
|
||||
and it will run Epiphany with the GTK Inspector, so you can check the CSS styles
|
||||
of its elements too.
|
||||
|
||||
```sh
|
||||
GTK_DEBUG=interactive epiphany
|
||||
```
|
||||
|
||||
Feel free to use any parts of my code to develop your own themes, I don't force
|
||||
any specific license on your code.
|
||||
|
||||
## Credits
|
||||
Developed by **[Rafael Mardojai CM](https://github.com/rafaelmardojai)** and [contributors](https://github.com/rafaelmardojai/firefox-gnome-theme/graphs/contributors). Based on **[Luna Kurame](https://github.com/lunakurame/firefox-gnome-theme)**'s original work.
|
||||
|
||||
## Donate
|
||||
If you want to support development, consider donating via [PayPal](https://paypal.me/RafaelMardojaiCM). Also consider donating upstream, [Firefox](https://donate.mozilla.org/) & [GNOME](https://www.gnome.org/donate/).
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
# These are supported funding model platforms
|
||||
|
||||
github: rafaelmardojai
|
||||
patreon: rafaelmardojai
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: rafaelmardojai
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
custom: ['https://rafaelmardojai.com/donate/']
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
name: Bug Report
|
||||
description: Report a bug in the theme
|
||||
title: "[Bug] "
|
||||
labels: [bug]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
> [!IMPORTANT]
|
||||
> Note that extension support is maintained by the community, so extension bug reports will be closed. If you want to report something, use [Discussions](https://github.com/rafaelmardojai/firefox-gnome-theme/discussions).
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe the bug
|
||||
description: A clear and concise description of what the bug is. Include screenshots if needed.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Write steps to reproduce the behavior if possible.
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected behavior
|
||||
description: A clear and concise description of what you expected to happen.
|
||||
- type: input
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: e.g. Fedora, Ubuntu
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Firefox installation method
|
||||
options:
|
||||
- Distro package
|
||||
- Flatpak
|
||||
- Snap
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: Firefox version
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: Theme version
|
||||
description: e.g. v108, master branch, specific commit
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Optional features enabled
|
||||
description: Select the features you have enabled in `about:config`.
|
||||
options:
|
||||
- label: gnomeTheme.hideSingleTab
|
||||
- label: gnomeTheme.normalWidthTabs
|
||||
- label: gnomeTheme.swapTabClose
|
||||
- label: gnomeTheme.bookmarksToolbarUnderTabs
|
||||
- label: gnomeTheme.activeTabContrast
|
||||
- label: gnomeTheme.closeOnlySelectedTabs
|
||||
- label: gnomeTheme.systemIcons
|
||||
- label: gnomeTheme.noThemedIcons
|
||||
- label: gnomeTheme.symbolicTabIcons
|
||||
- label: gnomeTheme.hideWebrtcIndicator
|
||||
- label: gnomeTheme.hideUnifiedExtensions
|
||||
- label: gnomeTheme.dragWindowHeaderbarButtons
|
||||
- label: gnomeTheme.tabsAsHeaderbar
|
||||
- label: gnomeTheme.oledBlack
|
||||
- label: gnomeTheme.allTabsButtonOnOverflow
|
||||
- label: gnomeTheme.allTabsButton
|
||||
- label: gnomeTheme.tabAlignLeft
|
||||
- label: gnomeTheme.bookmarksOnFullscreen
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional information
|
||||
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
name: Feature Request
|
||||
description: Suggest an idea for this project
|
||||
title: "[Feature] "
|
||||
labels: [enhancement]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
> [!IMPORTANT]
|
||||
> Note that requests for support of specific Firefox extensions are not allowed and will be closed.
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Is your feature request related to a problem? Please describe.
|
||||
description: |
|
||||
A clear and concise description of what the problem is.
|
||||
Ex. I'm always frustrated when [...]
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe the solution you'd like
|
||||
description: A clear and concise description of what you want to happen.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe alternatives you've considered
|
||||
description: A clear and concise description of any alternative solutions or features you've considered.
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional information
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: General Questions and Chat
|
||||
url: https://matrix.to/#/#firefox-gnome-theme:matrix.org
|
||||
about: Ask and chat about the theme in Matrix
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
name: Release
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
publish_aur_package:
|
||||
name: Publish AUR package
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Generate PKGBUILD
|
||||
env:
|
||||
RELEASE: ${{ github.event.release.tag_name }}
|
||||
run: ./scripts/generate-pkgbuild.sh
|
||||
|
||||
- name: Publish firefox-gnome-theme to the AUR
|
||||
uses: KSXGitHub/github-actions-deploy-aur@v2.7.2
|
||||
with:
|
||||
pkgname: firefox-gnome-theme
|
||||
pkgbuild: ./PKGBUILD
|
||||
commit_username: ${{ secrets.AUR_USERNAME }}
|
||||
commit_email: ${{ secrets.AUR_EMAIL }}
|
||||
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
||||
commit_message: ${{ github.event.release.tag_name }}
|
||||
updpkgsums: true
|
||||
test: true
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
name: Test
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
name: Smoke test
|
||||
steps:
|
||||
- name: Setup - Install Firefox.deb
|
||||
run: |
|
||||
sudo add-apt-repository ppa:mozillateam/ppa
|
||||
echo '
|
||||
Package: *
|
||||
Pin: release o=LP-PPA-mozillateam
|
||||
Pin-Priority: 1001
|
||||
' | sudo tee /etc/apt/preferences.d/mozilla-firefox
|
||||
echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
|
||||
sudo apt update
|
||||
sudo apt install firefox
|
||||
|
||||
- name: Setup 1 - create a Firefox profile
|
||||
run: firefox --headless --createprofile test
|
||||
|
||||
- name: Test 1 - Run a web installer as in README
|
||||
run: curl -s -o- https://raw.githubusercontent.com/rafaelmardojai/firefox-gnome-theme/master/scripts/install-by-curl.sh | bash
|
||||
|
||||
- name: Teardown 1
|
||||
run: rm -rf ls ~/.mozilla/firefox/
|
||||
|
||||
- name: Setup 2 - create a new Firefox profile
|
||||
run: firefox --headless --createprofile test
|
||||
|
||||
- name: Setup 2 - checkout the repo
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Test 2 - Run a regular installer
|
||||
run: ./scripts/install.sh
|
||||
|
||||
- name: Teardown 2
|
||||
run: rm -rf ls ~/.mozilla/firefox/
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
customChrome.css
|
||||
customContent.css
|
||||
PKGBUILD
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
firefoxInstallationPaths=(
|
||||
# Firefox
|
||||
~/.mozilla/firefox # Package
|
||||
~/.var/app/org.mozilla.firefox/.mozilla/firefox # Flatpak
|
||||
~/snap/firefox/common/.mozilla/firefox # Snap
|
||||
"$HOME/Library/Application Support/Firefox" # MacOS Package
|
||||
~/AppData/Roaming/Mozilla/Firefox # Microsoft Windows
|
||||
|
||||
# Librewolf
|
||||
~/.librewolf # Package
|
||||
~/.var/app/io.gitlab.librewolf-community/.librewolf # Flatpak
|
||||
|
||||
# Floorp
|
||||
~/.floorp # Package
|
||||
~/.var/app/one.ablaze.floorp/.floorp # Flatpak
|
||||
|
||||
# Waterfox
|
||||
~/.var/app/net.waterfox.waterfox/.waterfox # Flatpak
|
||||
|
||||
)
|
||||
|
||||
installScript="./scripts/install.sh"
|
||||
folderArg=""
|
||||
foldersFoundCount=0
|
||||
|
||||
eval "chmod +x ${installScript}"
|
||||
|
||||
for folder in "${firefoxInstallationPaths[@]}"; do
|
||||
if [ -d "$folder" ]; then
|
||||
echo Firefox installation folder found
|
||||
|
||||
folderArg=" -f \"$folder\""
|
||||
eval ${installScript}${folderArg}
|
||||
foldersFoundCount+=1
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
if [ $foldersFoundCount = 0 ];then
|
||||
echo No firefox folder found ;
|
||||
fi
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Exit on error
|
||||
set -e
|
||||
|
||||
if [ -z "$RELEASE" ]; then
|
||||
echo "\$RELEASE not set, aborting"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pkgver=$(echo "$RELEASE" | sed 's/v//')
|
||||
|
||||
cat << EOF > ./PKGBUILD
|
||||
# Maintainer: Marko Korhonen <firefox-gnome-theme@marko.korhonen.cc>
|
||||
# Based on the existing AUR package firefox-gnome-theme-git
|
||||
# This PKGBUILD is automatically generated by https://github.com/rafaelmardojai/firefox-gnome-theme/blob/$RELEASE/scripts/generate-pkgbuild.sh
|
||||
# when a release is published on GitHub. Do not edit this file directly.
|
||||
|
||||
pkgname=firefox-gnome-theme
|
||||
pkgver=$pkgver
|
||||
pkgrel=1
|
||||
pkgdesc='A GNOME theme for Firefox'
|
||||
arch=('any')
|
||||
url="https://github.com/rafaelmardojai/\$pkgname"
|
||||
license=('Unlicense')
|
||||
optdepends=('firefox: primary compatible browser' 'librewolf: alternative compatible browser')
|
||||
conflicts=("\$pkgname-git")
|
||||
install="\$pkgname.install"
|
||||
source=("\$pkgname-\$pkgver.tar.gz::https://github.com/rafaelmardojai/\$pkgname/archive/refs/tags/v\$pkgver.tar.gz" "INSTALL.md")
|
||||
md5sums=('TO_BE_GENERATED'
|
||||
'25f18456221ffc91f472b1abff8aae84')
|
||||
|
||||
package() {
|
||||
cd "\$srcdir/\$pkgname-\$pkgver"
|
||||
install -d "\$pkgdir/usr/lib/\$pkgname"
|
||||
cp -ra theme userChrome.css userContent.css configuration "\$pkgdir/usr/lib/\$pkgname"
|
||||
|
||||
# Install docs
|
||||
install -Dm644 README.md "\$pkgdir/usr/share/doc/\$pkgname/README.md"
|
||||
install -Dm644 "\$srcdir/INSTALL.md" "\$pkgdir/usr/share/doc/\$pkgname/INSTALL.md"
|
||||
}
|
||||
EOF
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
VERSION=$(curl --silent "https://api.github.com/repos/rafaelmardojai/firefox-gnome-theme/releases/latest" | grep tag_name | cut -d'"' -f4)
|
||||
FILENAME=firefox-gnome-theme-$VERSION.tar.gz
|
||||
|
||||
(
|
||||
|
||||
cd $(mktemp -d) || exit 1
|
||||
mkdir firefox-gnome-theme
|
||||
cd firefox-gnome-theme
|
||||
|
||||
curl -LJo $FILENAME https://github.com/rafaelmardojai/firefox-gnome-theme/tarball/$VERSION
|
||||
|
||||
tar -xzf $FILENAME --strip-components=1
|
||||
|
||||
chmod +x scripts/auto-install.sh
|
||||
|
||||
./scripts/auto-install.sh
|
||||
|
||||
)
|
||||
|
|
@ -0,0 +1,156 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
THEMEDIRECTORY=$(cd "$(dirname $0)" && cd .. && pwd)
|
||||
FIREFOXFOLDER=~/.mozilla/firefox
|
||||
PROFILENAME=""
|
||||
|
||||
|
||||
# Get options.
|
||||
while getopts 'f:p:t:' flag; do
|
||||
case "${flag}" in
|
||||
f) FIREFOXFOLDER="${OPTARG}" ;;
|
||||
p) PROFILENAME="${OPTARG}" ;;
|
||||
*)
|
||||
echo "Gnome Theme Install Script:"
|
||||
echo " -f <firefox_folder_path>. Set custom Firefox folder path."
|
||||
echo " -p <profile_name>. Set custom profile name."
|
||||
echo " -h to show this message."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# A wrapper around the `sed` command to handle platform-specific differences.
|
||||
#
|
||||
# sed in BSD platforms need this extra argument when using '-i' to specify no backup file.
|
||||
function _sed(){
|
||||
if [[ "$OSTYPE" == *"linux"* ]] || [[ "$OSTYPE" == *msys* ]]; then
|
||||
sed "$@"
|
||||
return $?
|
||||
fi
|
||||
|
||||
if [[ "$1" == "-i" ]]; then
|
||||
shift 1
|
||||
sed -i '' "$@"
|
||||
return $?
|
||||
fi
|
||||
|
||||
sed "$@"
|
||||
}
|
||||
|
||||
function saveProfile(){
|
||||
local PROFILE_PATH="$1"
|
||||
|
||||
cd "$FIREFOXFOLDER/$PROFILE_PATH" || { echo "FAIL, Firefox profile path was not found."; exit 1; }
|
||||
# Create a chrome directory if it doesn't exist.
|
||||
mkdir -p chrome
|
||||
cd chrome || { echo "FAIL, couldn't create chrome dir in $PWD, please check if there's something else named 'chrome'."; exit 1; }
|
||||
|
||||
# Copy theme repo inside
|
||||
echo "Copying repo in $PWD" >&2
|
||||
[ -e ./firefox-gnome-theme ] || mkdir firefox-gnome-theme
|
||||
cp -fR "$THEMEDIRECTORY/." "$PWD/firefox-gnome-theme/" || { echo "FAIL, couldn't copy to $PWD/chrome, please check if there's something named 'chrome' or 'chrome/firefox-gnome-theme', that is not a dir."; exit 1; }
|
||||
|
||||
# Create single-line user CSS files if non-existent or empty.
|
||||
if [ -s userChrome.css ]; then
|
||||
# Remove older theme imports
|
||||
_sed 's/@import "firefox-gnome-theme.*.//g' userChrome.css | _sed '/^\s*$/d' > tmpfile && mv tmpfile userChrome.css
|
||||
echo >> userChrome.css
|
||||
else
|
||||
echo >> userChrome.css
|
||||
fi
|
||||
|
||||
# Import this theme at the beginning of the CSS files.
|
||||
_sed -i '1s/^/@import "firefox-gnome-theme\/userChrome.css";\n/' userChrome.css
|
||||
|
||||
# Check if the import was set correctly
|
||||
if ! cat userChrome.css | grep "firefox-gnome-theme" > /dev/null; then
|
||||
echo "Unable to add the main import in 'userChrome.css', it needs to be set manually." >&2
|
||||
fi
|
||||
|
||||
# Create single-line user content CSS files if non-existent or empty. (userContent)
|
||||
if [ -s userContent.css ]; then
|
||||
# Remove older theme imports
|
||||
_sed 's/@import "firefox-gnome-theme.*.//g' userContent.css | _sed '/^\s*$/d' > tmpfile1 && mv tmpfile1 userContent.css
|
||||
echo >> userContent.css
|
||||
else
|
||||
echo >> userContent.css
|
||||
fi
|
||||
|
||||
# Import this theme at the beginning of the CSS files. (userContent)
|
||||
_sed -i '1s/^/@import "firefox-gnome-theme\/userContent.css";\n/' userContent.css
|
||||
|
||||
# Check if the import was set correctly (userContent)
|
||||
if ! cat userContent.css | grep "firefox-gnome-theme" > /dev/null; then
|
||||
echo "Unable to add the main import in 'userContent.css', it needs to be set manually." >&2
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
echo "Set configuration to user.js file" >&2
|
||||
|
||||
theme_prefs=()
|
||||
while IFS= read -r line; do
|
||||
theme_prefs+=("$line")
|
||||
done < <(grep "user_pref" chrome/firefox-gnome-theme/configuration/user.js)
|
||||
|
||||
theme_prefs_unvalued=()
|
||||
while IFS= read -r line; do
|
||||
theme_prefs_unvalued+=("$line")
|
||||
done < <(grep "user_pref" chrome/firefox-gnome-theme/configuration/user.js | cut -d'"' -f 2)
|
||||
|
||||
if [ ! -f "user.js" ]; then
|
||||
mv chrome/firefox-gnome-theme/configuration/user.js .
|
||||
else
|
||||
cp user.js user.js.bak
|
||||
OLDIFS=$IFS
|
||||
IFS='/'
|
||||
for t in "${theme_prefs_unvalued[@]}"; do
|
||||
_sed -i "/$t/d" "user.js"
|
||||
done
|
||||
for f in "${theme_prefs[@]}"; do
|
||||
echo "$f" >> "user.js"
|
||||
done
|
||||
IFS=$OLDIFS
|
||||
fi
|
||||
echo "Done." >&2
|
||||
cd ..
|
||||
}
|
||||
|
||||
PROFILES_FILE="${FIREFOXFOLDER}/profiles.ini"
|
||||
if [ ! -f "${PROFILES_FILE}" ]; then
|
||||
>&2 echo "FAIL, please check Firefox installation, unable to find 'profile.ini' at ${FIREFOXFOLDER}."
|
||||
exit 1
|
||||
fi
|
||||
echo "'profiles.ini' found in ${FIREFOXFOLDER}"
|
||||
|
||||
PROFILES_PATHS=($(grep -E "^Path=" "${PROFILES_FILE}" | tr -d '\n' | _sed -e 's/\s\+/SPACECHARACTER/g' | _sed 's/Path=/::/g' ))
|
||||
PROFILES_PATHS+=::
|
||||
|
||||
PROFILES_ARRAY=()
|
||||
if [ "${PROFILENAME}" != "" ];
|
||||
then
|
||||
echo "Using ${PROFILENAME} profile"
|
||||
PROFILES_ARRAY+=${PROFILENAME}
|
||||
else
|
||||
echo "Finding all available profiles";
|
||||
while [[ "$PROFILES_PATHS" ]]; do
|
||||
PROFILES_ARRAY+=( "${PROFILES_PATHS%%::*}" )
|
||||
PROFILES_PATHS=${PROFILES_PATHS#*::}
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
if [ ${#PROFILES_ARRAY[@]} -eq 0 ]; then
|
||||
echo "FAIL, no Firefox profile found in $PROFILES_FILE".;
|
||||
|
||||
else
|
||||
for i in "${PROFILES_ARRAY[@]}"
|
||||
do
|
||||
if [[ -n "$i" ]];
|
||||
then
|
||||
echo "Installing theme for $(sed 's/SPACECHARACTER/ /g' <<< $i) profile.";
|
||||
saveProfile "$(sed 's/SPACECHARACTER/ /g' <<< $i)"
|
||||
fi;
|
||||
done
|
||||
fi
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
git checkout beta
|
||||
git rebase master
|
||||
git push origin beta -f
|
||||
|
||||
git checkout nightly
|
||||
git rebase beta
|
||||
git push origin nightly -f
|
||||
|
||||
git checkout master
|
||||
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
/* Variables that start with --gnome- are added by me and are assigned
|
||||
* to elements somewhere in this code. The rest of the variables are
|
||||
* built-in in Firefox, so you need to add an !important if you wanna
|
||||
* override them. */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
/* Accent */
|
||||
--gnome-accent-bg: #1161CB;
|
||||
--gnome-accent: #1161CB;
|
||||
|
||||
--gnome-toolbar-star-button: var(--gnome-palette-yellow-1);
|
||||
|
||||
/* Window */
|
||||
--gnome-window-background: #000000;
|
||||
--gnome-window-color: white;
|
||||
--gnome-view-background: #1e1e1e;
|
||||
--gnome-sidebar-background: #303030;
|
||||
--gnome-secondary-sidebar-background: #2a2a2a;
|
||||
|
||||
/* Card */
|
||||
--gnome-card-background: rgba(255, 255, 255, 0.08);
|
||||
--gnome-card-shade-color: color-mix(in srgb, black 36%, transparent);
|
||||
|
||||
/* Menu */
|
||||
--gnome-menu-background: #303030;
|
||||
|
||||
/* Header bar */
|
||||
--gnome-headerbar-background: #000000;
|
||||
--gnome-headerbar-shade-color: rgba(0, 0, 0, 0.9);
|
||||
|
||||
/* Toolbars */
|
||||
--gnome-toolbar-icon-fill: #eeeeec;
|
||||
|
||||
/* Tabs */
|
||||
--gnome-tabbar-tab-hover-background: #252524; /* Hardcoded color */
|
||||
--gnome-tabbar-tab-active-background: #191918; /* Hardcoded color */
|
||||
--gnome-tabbar-tab-active-background-contrast: #4F4F4F; /* Hardcoded color */
|
||||
--gnome-tabbar-tab-active-hover-background: #272725; /* Hardcoded color */
|
||||
|
||||
--gnome-tabbar-identity-color-green: var(--gnome-palette-green-1);
|
||||
--gnome-tabbar-identity-color-yellow: var(--gnome-palette-yellow-2);
|
||||
--gnome-tabbar-identity-color-orange: var(--gnome-palette-orange-3);
|
||||
--gnome-tabbar-identity-color-red: var(--gnome-palette-red-1);
|
||||
--gnome-tabbar-identity-color-purple: var(--gnome-palette-purple-1);
|
||||
|
||||
/* Text color for Firefox Logo in new private tab */
|
||||
--gnome-private-wordmark: #FBFBFE;
|
||||
/* New private tab background */
|
||||
--gnome-private-in-content-page-background: #242424;
|
||||
/* Private browsing info box */
|
||||
--gnome-private-text-primary-color: #FBFBFE;
|
||||
}
|
||||
|
||||
/* Backdrop colors */
|
||||
:root:-moz-window-inactive {
|
||||
--gnome-tabbar-tab-hover-background: #2c2c2c; /* Hardcoded color */
|
||||
--gnome-tabbar-tab-active-background: #2e2e2e; /* Hardcoded color */
|
||||
}
|
||||
|
||||
/* Private colors */
|
||||
:root[privatebrowsingmode="temporary"] {
|
||||
--gnome-accent-fg: #78aeed;
|
||||
/* Headerbar */
|
||||
--gnome-headerbar-background: #252F49 !important;
|
||||
/* Tabs */
|
||||
--gnome-tabbar-tab-hover-background: #343e56; /* Hardcoded color */
|
||||
--gnome-tabbar-tab-active-background: #343e56; /* Hardcoded color */
|
||||
--gnome-tabbar-tab-active-background-contrast: #495675; /* Hardcoded color */
|
||||
--gnome-tabbar-tab-active-hover-background: #414a61; /* Hardcoded color */
|
||||
}
|
||||
|
||||
/* Private and backdrop colors */
|
||||
:root[privatebrowsingmode="temporary"]:-moz-window-inactive {
|
||||
--gnome-headerbar-background: #252F49 !important;
|
||||
--gnome-tabbar-tab-hover-background: #242c3f; /* Hardcoded color */
|
||||
--gnome-tabbar-tab-active-background: #272e41; /* Hardcoded color */
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
/* Variables that start with --gnome- are added by me and are assigned
|
||||
* to elements somewhere in this code. The rest of the variables are
|
||||
* built-in in Firefox, so you need to add an !important if you wanna
|
||||
* override them. */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
/* Colors */
|
||||
--gnome-standalone-color-oklab: max(l, 0.85) a b;
|
||||
--gnome-destructive-bg: var(--gnome-palette-red-4);
|
||||
--gnome-success-bg: var(--gnome-palette-green-5);
|
||||
--gnome-warning-bg: #cd9309;
|
||||
--gnome-error-bg: var(--gnome-palette-red-4);
|
||||
|
||||
--gnome-toolbar-star-button: var(--gnome-palette-yellow-1);
|
||||
|
||||
/* Window */
|
||||
--gnome-window-background: #222226;
|
||||
--gnome-window-color: white;
|
||||
--gnome-view-background: #1e1e1e;
|
||||
--gnome-sidebar-background: #2e2e32;
|
||||
--gnome-secondary-sidebar-background: #28282c;
|
||||
|
||||
/* Card */
|
||||
--gnome-card-background: rgba(255, 255, 255, 0.08);
|
||||
--gnome-card-shade-color: rgba(0, 0, 6, 0.36);
|
||||
|
||||
/* Menu */
|
||||
--gnome-menu-background: #36363a;
|
||||
|
||||
/* Header bar */
|
||||
--gnome-headerbar-background: #2e2e32;
|
||||
--gnome-headerbar-shade-color: rgba(0, 0, 0, 0.9);
|
||||
|
||||
/* Toolbars */
|
||||
--gnome-toolbar-icon-fill: #ffffff;
|
||||
|
||||
/* Tabs */
|
||||
--gnome-tabbar-identity-color-green: var(--gnome-palette-green-1);
|
||||
--gnome-tabbar-identity-color-yellow: var(--gnome-palette-yellow-2);
|
||||
--gnome-tabbar-identity-color-orange: var(--gnome-palette-orange-3);
|
||||
--gnome-tabbar-identity-color-red: var(--gnome-palette-red-1);
|
||||
--gnome-tabbar-identity-color-purple: var(--gnome-palette-purple-1);
|
||||
|
||||
/* Miscellaneous */
|
||||
--gnome-shade-color: rgba(0, 0, 6, 0.25);
|
||||
|
||||
/* Text color for Firefox Logo in new private tab */
|
||||
--gnome-private-wordmark: #FBFBFE;
|
||||
/* New private tab background */
|
||||
--gnome-private-in-content-page-background: #222226;
|
||||
/* Private browsing info box */
|
||||
--gnome-private-text-primary-color: #FBFBFE;
|
||||
|
||||
/* Backdrop colors */
|
||||
&:-moz-window-inactive {
|
||||
--gnome-sidebar-background: #28282c;
|
||||
--gnome-secondary-sidebar-background: #252529;
|
||||
}
|
||||
|
||||
/* Private browsing colors */
|
||||
&[privatebrowsingmode="temporary"] {
|
||||
/* Headerbar */
|
||||
--gnome-headerbar-background: #2e2540 !important;
|
||||
&:-moz-window-inactive {
|
||||
--gnome-headerbar-background: #241d34 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,177 @@
|
|||
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
/* Variables that start with --gnome- are added by me and are assigned
|
||||
* to elements somewhere in this code. The rest of the variables are
|
||||
* built-in in Firefox, so you need to add an !important if you wanna
|
||||
* override them. */
|
||||
|
||||
:root {
|
||||
/* Pallete */
|
||||
--gnome-palette-blue-1: #99c1f1;
|
||||
--gnome-palette-blue-2: #62a0ea;
|
||||
--gnome-palette-blue-3: #3584e4;
|
||||
--gnome-palette-blue-4: #1c71d8;
|
||||
--gnome-palette-blue-5: #1a5fb4;
|
||||
--gnome-palette-green-1: #8ff0a4;
|
||||
--gnome-palette-green-2: #57e389;
|
||||
--gnome-palette-green-3: #33d17a;
|
||||
--gnome-palette-green-4: #2ec27e;
|
||||
--gnome-palette-green-5: #26a269;
|
||||
--gnome-palette-yellow-1: #f9f06b;
|
||||
--gnome-palette-yellow-2: #f8e45c;
|
||||
--gnome-palette-yellow-3: #f6d32d;
|
||||
--gnome-palette-yellow-4: #f5c211;
|
||||
--gnome-palette-yellow-5: #e5a50a;
|
||||
--gnome-palette-orange-1: #ffbe6f;
|
||||
--gnome-palette-orange-2: #ffa348;
|
||||
--gnome-palette-orange-3: #ff7800;
|
||||
--gnome-palette-orange-4: #e66100;
|
||||
--gnome-palette-orange-5: #c64600;
|
||||
--gnome-palette-red-1: #f66151;
|
||||
--gnome-palette-red-2: #ed333b;
|
||||
--gnome-palette-red-3: #e01b24;
|
||||
--gnome-palette-red-4: #c01c28;
|
||||
--gnome-palette-red-5: #a51d2d;
|
||||
--gnome-palette-purple-1: #dc8add;
|
||||
--gnome-palette-purple-2: #c061cb;
|
||||
--gnome-palette-purple-3: #9141ac;
|
||||
--gnome-palette-purple-4: #813d9c;
|
||||
--gnome-palette-purple-5: #613583;
|
||||
--gnome-palette-brown-1: #cdab8f;
|
||||
--gnome-palette-brown-2: #b5835a;
|
||||
--gnome-palette-brown-3: #986a44;
|
||||
--gnome-palette-brown-4: #865e3c;
|
||||
--gnome-palette-brown-5: #63452c;
|
||||
--gnome-palette-light-1: #ffffff;
|
||||
--gnome-palette-light-2: #f6f5f4;
|
||||
--gnome-palette-light-3: #deddda;
|
||||
--gnome-palette-light-4: #c0bfbc;
|
||||
--gnome-palette-light-5: #9a9996;
|
||||
--gnome-palette-dark-1: #77767b;
|
||||
--gnome-palette-dark-2: #5e5c64;
|
||||
--gnome-palette-dark-3: #3d3846;
|
||||
--gnome-palette-dark-4: #241f31;
|
||||
--gnome-palette-dark-5: #000000;
|
||||
|
||||
/* Colors */
|
||||
--gnome-standalone-color-oklab: min(l, 0.5) a b;
|
||||
--gnome-accent-bg: AccentColor;
|
||||
--gnome-accent: oklab(from var(--gnome-accent-bg) var(--gnome-standalone-color-oklab));
|
||||
--gnome-destructive-bg: var(--gnome-palette-red-3);
|
||||
--gnome-destructive: oklab(from var(--gnome-destructive-bg) var(--gnome-standalone-color-oklab));
|
||||
--gnome-success-bg: var(--gnome-palette-green-4);
|
||||
--gnome-success: oklab(from var(--gnome-success-bg) var(--gnome-standalone-color-oklab));
|
||||
--gnome-warning-bg: var(--gnome-palette-yellow-5);
|
||||
--gnome-warning: oklab(from var(--gnome-warning-bg) var(--gnome-standalone-color-oklab));
|
||||
--gnome-error-bg: var(--gnome-palette-red-3);
|
||||
--gnome-error: oklab(from var(--gnome-error-bg) var(--gnome-standalone-color-oklab));
|
||||
--gnome-focus-border-color: color-mix(in srgb, var(--gnome-accent) 50%, transparent);
|
||||
|
||||
--gnome-selection-bg: color-mix(in srgb, var(--gnome-accent-bg) 30%, transparent);
|
||||
--gnome-toolbar-star-button: var(--gnome-palette-yellow-5);
|
||||
|
||||
/* Window */
|
||||
--gnome-window-background: #fafafb;
|
||||
--gnome-window-color: rgba(0, 0, 6, 0.8);
|
||||
--gnome-view-background: #ffffff;
|
||||
--gnome-view-color: var(--gnome-window-color);
|
||||
--gnome-view-selected-background: color-mix(in srgb, var(--gnome-accent-bg) 25%, transparent);
|
||||
--gnome-view-selected-hover-background: color-mix(in srgb, var(--gnome-accent-bg) 32%, transparent);
|
||||
--gnome-view-selected-active-background: color-mix(in srgb, var(--gnome-accent-bg) 39%, transparent);
|
||||
--gnome-sidebar-background: #ebebed;
|
||||
--gnome-secondary-sidebar-background: #f3f3f5;
|
||||
|
||||
/* Card */
|
||||
--gnome-card-background: #ffffff;
|
||||
--gnome-card-shade-color: rgba(0, 0, 6, 0.07);
|
||||
|
||||
/* Menu */
|
||||
--gnome-menu-background: #ffffff;
|
||||
--gnome-menu-color: var(--gnome-window-color);
|
||||
--gnome-menu-shadow: 0 1px 5px 1px rgba(0, 0, 0, .09), 0 2px 14px 3px rgba(0, 0, 0, .05);
|
||||
--gnome-menu-button-hover-background: var(--gnome-button-background);
|
||||
--gnome-menu-separator-color: var(--gnome-border-color);
|
||||
|
||||
/* Header bar */
|
||||
--gnome-headerbar-background: #ffffff;
|
||||
--gnome-headerbar-shade-color: rgba(0, 0, 0, 0.12);
|
||||
|
||||
/* Toolbars */
|
||||
--gnome-toolbar-background: var(--gnome-headerbar-background);
|
||||
--gnome-toolbar-border-color: var(--gnome-headerbar-shade-color);
|
||||
--gnome-toolbar-icon-fill: #2f2f2f;
|
||||
|
||||
/* Elements */
|
||||
--gnome-border-color: color-mix(in srgb, currentColor 15%, transparent);
|
||||
--gnome-hover-color: color-mix(in srgb, currentColor 7%, transparent);
|
||||
--gnome-active-color: color-mix(in srgb, currentColor 16%, transparent);
|
||||
--gnome-selected-color: color-mix(in srgb, currentColor 10%, transparent);
|
||||
--gnome-selected-hover-color: color-mix(in srgb, currentColor 13%, transparent);
|
||||
--gnome-selected-active-color: color-mix(in srgb, currentColor 19%, transparent);
|
||||
--gnome-trough-background: color-mix(in srgb, currentColor 15%, transparent);
|
||||
--gnome-trough-hover-background: color-mix(in srgb, currentColor 20%, transparent);
|
||||
--gnome-trough-active-background: color-mix(in srgb, currentColor 25%, transparent);
|
||||
|
||||
/* Buttons */
|
||||
--gnome-button-background: color-mix(in srgb, currentColor 10%, transparent);
|
||||
--gnome-button-hover-background: color-mix(in srgb, currentColor 15%, transparent);
|
||||
--gnome-button-active-background: color-mix(in srgb, currentColor 30%, transparent);
|
||||
--gnome-button-checked-background: var(--gnome-button-active-background);
|
||||
--gnome-button-checked-hover-background: color-mix(in srgb, currentColor 35%, transparent);
|
||||
--gnome-button-checked-active-background: color-mix(in srgb, currentColor 40%, transparent);
|
||||
--gnome-button-suggested-background: var(--gnome-accent-bg);
|
||||
--gnome-button-destructive-background: color-mix(in srgb, currentColor 15%, transparent);
|
||||
--gnome-button-destructive-hover-background: color-mix(in srgb, currentColor 20%, transparent);
|
||||
--gnome-button-destructive-active-background: color-mix(in srgb, currentColor 35%, transparent);
|
||||
|
||||
/* Entries */
|
||||
--gnome-entry-background: var(--gnome-button-background);
|
||||
--gnome-entry-color: var(--gnome-view-color);
|
||||
--gnome-entry-focused-border-color: color-mix(in srgb, var(--gnome-accent) 50%, transparent);
|
||||
--gnome-entry-error-focused-border-color: color-mix(in srgb, var(--gnome-error) 50%, transparent);
|
||||
|
||||
/* Tabs */
|
||||
--gnome-tabbar-background: var(--gnome-headerbar-background);
|
||||
--gnome-tabbar-tab-separator-color: var(--gnome-border-color);
|
||||
--gnome-tabbar-tab-hover-background: color-mix(in srgb, currentColor 7%, var(--gnome-tabbar-background));
|
||||
--gnome-tabbar-tab-active-background: color-mix(in srgb, currentColor 10%, var(--gnome-tabbar-background));
|
||||
--gnome-tabbar-tab-active-background-contrast: color-mix(in srgb, currentColor 20%, var(--gnome-tabbar-background));
|
||||
--gnome-tabbar-tab-active-hover-background: color-mix(in srgb, currentColor 13%, var(--gnome-tabbar-background));
|
||||
--gnome-tabbar-tab-needs-attetion: var(--gnome-palette-blue-2);
|
||||
|
||||
--gnome-tabbar-identity-color-blue: var(--gnome-accent);
|
||||
--gnome-tabbar-identity-color-turquoise: #00c79a;
|
||||
--gnome-tabbar-identity-color-green: var(--gnome-palette-green-5);
|
||||
--gnome-tabbar-identity-color-yellow: #ae7b03;
|
||||
--gnome-tabbar-identity-color-orange: var(--gnome-palette-orange-4);
|
||||
--gnome-tabbar-identity-color-red: var(--gnome-palette-red-3);
|
||||
--gnome-tabbar-identity-color-pink: #ff4b84;
|
||||
--gnome-tabbar-identity-color-purple: var(--gnome-palette-purple-4);
|
||||
|
||||
/* Miscellaneous */
|
||||
--gnome-shade-color: rgba(0, 0, 6, 0.07);
|
||||
|
||||
/* Text color for Firefox Logo in new private tab */
|
||||
--gnome-private-wordmark: #20123A;
|
||||
/* New private tab background */
|
||||
--gnome-private-in-content-page-background: #FAFAFA;
|
||||
/* Private browsing info box */
|
||||
--gnome-private-text-primary-color: #15141A;
|
||||
|
||||
/* Backdrop colors */
|
||||
&:-moz-window-inactive {
|
||||
--gnome-headerbar-background: var(--gnome-window-background) !important;
|
||||
--gnome-sidebar-background: #f2f2f4;
|
||||
--gnome-secondary-sidebar-background: #f6f6fa;
|
||||
--gnome-selection-bg: color-mix(in srgb, var(--gnome-view-color) 10%, transparent);
|
||||
}
|
||||
|
||||
/* Private browsing colors */
|
||||
&[privatebrowsingmode="temporary"] {
|
||||
/* Headerbar */
|
||||
--gnome-headerbar-background: #f1eafa !important;
|
||||
&:-moz-window-inactive {
|
||||
--gnome-headerbar-background: #f3eef9 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
:root,
|
||||
:root[privatebrowsingmode="temporary"],
|
||||
:is(:root, :root[privatebrowsingmode="temporary"]):-moz-window-inactive {
|
||||
/* Colors */
|
||||
--gnome-accent-bg: AccentColor !important;
|
||||
/* Window */
|
||||
--gnome-window-color: var(--lwt-text-color);
|
||||
--gnome-window-background: var(--lwt-accent-color);
|
||||
--gnome-sidebar-background: var(--lwt-accent-color);
|
||||
--gnome-secondary-sidebar-background: var(--sidebar-background-color);
|
||||
/* Menu */
|
||||
--gnome-menu-background: var(--arrowpanel-background);
|
||||
--gnome-menu-color: var(--lwt-text-color);
|
||||
/* Header bar */
|
||||
--gnome-headerbar-background: var(--toolbar-bgcolor) !important;
|
||||
/* Toolbars */
|
||||
--gnome-toolbar-border-color: transparent;
|
||||
--gnome-toolbar-background: var(--toolbar-bgcolor);
|
||||
--gnome-toolbar-icon-fill: var(--toolbarbutton-icon-fill);
|
||||
/* Entries */
|
||||
--gnome-entry-background: var(--toolbar-field-background-color);
|
||||
--gnome-entry-color: var(--toolbar-field-color);
|
||||
--gnome-inactive-entry-color: hsl(from var(--gnome-entry-color) h s calc(l + 5%));
|
||||
--gnome-entry-focused-border-color: var(--gnome-selection-bg);
|
||||
/* Tabs */
|
||||
--gnome-tabbar-background: var(--gnome-headerbar-background);
|
||||
--gnome-tabbar-tab-hover-background: color-mix(in oklab, var(--gnome-tabbar-background), var(--lwt-text-color) 10%);
|
||||
--gnome-tabbar-tab-active-background: var(--tab-selected-bgcolor);
|
||||
--gnome-tabbar-tab-active-hover-background: color-mix(in oklab, var(--gnome-tabbar-tab-active-background), var(--lwt-text-color) 10%);
|
||||
|
||||
/* 'New Tab' and 'New Private Tab' pages */
|
||||
&:has(
|
||||
tab:where(
|
||||
[image="chrome://branding/content/icon32.png"],
|
||||
[image="chrome://browser/skin/privatebrowsing/favicon.svg"]
|
||||
)[selected]
|
||||
) {
|
||||
--lwt-accent-color: var(--gnome-private-in-content-page-background) !important;
|
||||
|
||||
--lwt-text-color: rgba(0, 0, 0, 0.8) !important;
|
||||
--sidebar-background-color: #f3f3f3 !important;
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
--lwt-text-color: white !important;
|
||||
--sidebar-background-color: #2a2a2a !important;
|
||||
}
|
||||
|
||||
--toolbar-bgcolor: var(--lwt-accent-color) !important;
|
||||
--toolbar-color: var(--lwt-text-color) !important;
|
||||
--toolbar-field-color: var(--lwt-text-color) !important;
|
||||
--toolbarbutton-icon-fill: var(--lwt-text-color) !important;
|
||||
--toolbar-field-focus-background-color: Field !important;
|
||||
--arrowpanel-background: color-mix(in oklab, var(--toolbar-bgcolor), var(--lwt-text-color) 10%) !important;
|
||||
--toolbar-field-background-color: var(--arrowpanel-background) !important;
|
||||
--tab-selected-bgcolor: color-mix(in oklab, var(--gnome-tabbar-background), var(--lwt-text-color) 20%) !important;
|
||||
--lwt-tab-line-color: var(--tab-selected-bgcolor) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.menupopup-arrowscrollbox, window[role="dialog"] {
|
||||
--gnome-menu-background: Menu;
|
||||
--gnome-window-color: MenuText;
|
||||
--gnome-toolbar-icon-fill: MenuText;
|
||||
}
|
||||
|
||||
.urlbarView-url {
|
||||
--gnome-headerbar-mix: color-mix(in oklch, var(--gnome-headerbar-background), var(--lwt-text-color) 60%);
|
||||
--gnome-accent: oklch(from var(--gnome-headerbar-mix) l calc(c + 0.01) h);
|
||||
}
|
||||
|
||||
#sidebar-launcher-splitter, #sidebar-splitter {
|
||||
background-color: color-mix(in oklab, var(--lwt-accent-color), var(--lwt-text-color) 10%) !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
/* Variables */
|
||||
@import "variables.css";
|
||||
@import "icons/icons.css";
|
||||
@import "colors/light.css";
|
||||
@import "colors/dark.css";
|
||||
@import "colors/black.css" screen and -moz-pref("gnomeTheme.oledBlack");
|
||||
|
||||
/* Core */
|
||||
@import "parts/toolbox.css";
|
||||
@import "parts/headerbar.css";
|
||||
@import "parts/csd.css";
|
||||
@import "parts/urlbar.css";
|
||||
@import "parts/tabsbar.css";
|
||||
@import "parts/findbar.css";
|
||||
@import "parts/sidebar.css";
|
||||
@import "parts/lists.css";
|
||||
|
||||
@import "parts/buttons.css";
|
||||
@import "parts/buttons-fixes.css";
|
||||
@import "parts/entries.css";
|
||||
@import "parts/controls.css";
|
||||
@import "parts/icons.css";
|
||||
|
||||
@import "parts/popups.css";
|
||||
@import "parts/popups-contents.css";
|
||||
@import "parts/dialogs.css";
|
||||
|
||||
@import "parts/remove-white-flash.css";
|
||||
|
||||
/* Platforms */
|
||||
@import "platforms/windows.css" screen and (-moz-platform: windows);
|
||||
|
||||
/* Extensions support */
|
||||
@import "extensions/adaptive-tab-bar-colour.css" screen and -moz-pref("gnomeTheme.extensions.adaptiveTabBarColour");
|
||||
|
||||
/* Optional */
|
||||
@import "system-icons.css" screen and -moz-pref("gnomeTheme.systemIcons");
|
||||
@import "symbolic-tab-icons.css" screen and -moz-pref("gnomeTheme.symbolicTabIcons");
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Set theme version text in customization panel */
|
||||
#customization-footer::before {
|
||||
background: url(../icon.svg) no-repeat;
|
||||
background-size: contain;
|
||||
content: "Firefox GNOME theme v143";
|
||||
padding: 9px 9px 9px 50px;
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<svg height="14" width="14" xmlns="http://www.w3.org/2000/svg">
|
||||
<g style="display:inline">
|
||||
<path d="M388 342c-2.207 0-4 1.793-4 4s1.793 4 4 4c2.208 0 4-1.793 4-4s-1.792-4-4-4z" transform="translate(-381 -339)" fill="context-fill" fill-opacity="context-fill-opacity"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 280 B |
|
|
@ -0,0 +1,5 @@
|
|||
<svg height="14" width="14" xmlns="http://www.w3.org/2000/svg">
|
||||
<g style="display:inline">
|
||||
<path d="M388 342c-2.207 0-4 1.793-4 4s1.793 4 4 4c2.208 0 4-1.793 4-4s-1.792-4-4-4z" transform="translate(-381 -339)" fill="#2e3436"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 239 B |
|
After Width: | Height: | Size: 5 KiB |
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 15 3.484375 l -1 -1 l -7.46875 7.515625 l -3.414062 -3.476562 l -2 2 l 5.414062 5.476562 l 9.46875 -9.515625 z m 0 0" fill="context-fill" fill-opacity="context-fill-opacity"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 325 B |
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 15 3.484375 l -1 -1 l -7.46875 7.515625 l -3.414062 -3.476562 l -2 2 l 5.414062 5.476562 l 9.46875 -9.515625 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 284 B |
|
|
@ -0,0 +1,125 @@
|
|||
# Generate stylesheet with GNOME SVG icons as CSS variables.
|
||||
#
|
||||
# Fetch icons from official git repos and convert them to inline CSS variables
|
||||
# adding support for reoloring in Firefox in the process.
|
||||
#
|
||||
# Git is required to run the script.
|
||||
#
|
||||
# Partially inspired by https://gitlab.gnome.org/World/design/icon-library/-/blob/master/update-icons.py
|
||||
|
||||
import glob
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import xml.etree.ElementTree as ET
|
||||
from typing import TypedDict
|
||||
from urllib.parse import quote
|
||||
|
||||
ABS_PATH = os.path.dirname(os.path.abspath(__file__))
|
||||
ICONS_FILE = os.path.join(ABS_PATH, "icons.json")
|
||||
CSS_FILE = os.path.join(ABS_PATH, "icons.css")
|
||||
ICONS_REPO_URL = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme.git"
|
||||
ICONS_REPO_PATH = os.path.join(ABS_PATH, "adwaita-icon-theme")
|
||||
ICONS_KIT_REPO_URL = (
|
||||
"https://gitlab.gnome.org/Teams/Design/icon-development-kit-www.git"
|
||||
)
|
||||
ICONS_KIT_REPO_PATH = os.path.join(ABS_PATH, "icon-development-kit-www")
|
||||
|
||||
ET.register_namespace("", "http://www.w3.org/2000/svg")
|
||||
|
||||
|
||||
class IconsDefinition(TypedDict):
|
||||
icons: list[str]
|
||||
|
||||
|
||||
def main():
|
||||
# Get icons repositories
|
||||
if not os.path.exists(ICONS_REPO_PATH):
|
||||
subprocess.call(["git", "clone", "--depth", "1", ICONS_REPO_URL], cwd=ABS_PATH)
|
||||
if not os.path.exists(ICONS_KIT_REPO_PATH):
|
||||
subprocess.call(
|
||||
["git", "clone", "--depth", "1", ICONS_KIT_REPO_URL], cwd=ABS_PATH
|
||||
)
|
||||
|
||||
# Get icons name to path mappings
|
||||
icon_paths = {
|
||||
**lookup_icons(f"{ICONS_KIT_REPO_PATH}/img/symbolic"), # Extra GNOME icons kit
|
||||
**lookup_icons(f"{ICONS_REPO_PATH}/Adwaita/symbolic"), # Core GNOME icons
|
||||
**lookup_icons(f"{ABS_PATH}/custom", False), # Custom icons
|
||||
}
|
||||
|
||||
# Load definition of icons needed by the theme
|
||||
with open(ICONS_FILE, "r") as f:
|
||||
icons_def: IconsDefinition = json.load(f)
|
||||
|
||||
# Process icons SVGs for CSS
|
||||
icons_svg: dict[str, str] = {}
|
||||
for icon in icons_def["icons"]:
|
||||
if icon not in icon_paths:
|
||||
logging.warning(f"No icon file found for '{icon}'")
|
||||
continue
|
||||
|
||||
text = process_svg(icon_paths[icon])
|
||||
svg = quote(text, safe=" =:/'") # URL encode the icon, omitting some characters
|
||||
icons_svg[icon] = svg
|
||||
|
||||
# Write CSS file
|
||||
with open(CSS_FILE, "w") as css:
|
||||
css.write(":root {\n")
|
||||
for name, svg in icons_svg.items():
|
||||
css.write(f'\t--gnome-icon-{name}: url("data:image/svg+xml,{svg}");\n')
|
||||
css.write("}")
|
||||
|
||||
# Remove repos dirs
|
||||
shutil.rmtree(ICONS_REPO_PATH)
|
||||
shutil.rmtree(ICONS_KIT_REPO_PATH)
|
||||
|
||||
|
||||
def lookup_icons(icons_folder: str, has_subdirs=True) -> dict[str, str]:
|
||||
lookup: dict[str, str] = {}
|
||||
|
||||
for path in glob.glob(
|
||||
f"{icons_folder}/{'**/' if has_subdirs else ''}*-symbolic.svg"
|
||||
):
|
||||
filename = os.path.basename(path)
|
||||
name = filename.replace(".svg", "")
|
||||
lookup[name] = path
|
||||
|
||||
return lookup
|
||||
|
||||
|
||||
def process_svg(filename: str) -> str:
|
||||
"""
|
||||
Process SVG's XML to be one liner and add Mozilla's SVG coloring properties
|
||||
"""
|
||||
tree = ET.parse(filename)
|
||||
root = tree.getroot()
|
||||
|
||||
# Set context-* values for fill and fill-opacity
|
||||
# Needed for icon recolor from CSS
|
||||
for tag in ("{http://www.w3.org/2000/svg}g", "{http://www.w3.org/2000/svg}path"):
|
||||
for elem in root.iter(tag):
|
||||
if "class" not in elem.attrib: # Paths with class name are colored overlays
|
||||
if "fill" in elem.attrib:
|
||||
elem.set("fill", "context-fill")
|
||||
elem.set("fill-opacity", "context-fill-opacity")
|
||||
if "stroke" in elem.attrib:
|
||||
elem.set("stroke", "context-stroke")
|
||||
elem.set("stroke-opacity", "context-stroke-opacity")
|
||||
|
||||
# Strip line breasks and indentation
|
||||
for elem in root.iter("*"):
|
||||
if elem.text is not None:
|
||||
elem.text = elem.text.strip()
|
||||
if elem.tail is not None:
|
||||
elem.tail = elem.tail.strip()
|
||||
|
||||
text = ET.tostring(root, "unicode")
|
||||
text = text.replace('"', "'") # Use single quotes
|
||||
|
||||
return text
|
||||
|
||||
|
||||
main()
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"icons": [
|
||||
"application-x-addon-symbolic",
|
||||
"applications-engineering-symbolic",
|
||||
"audio-volume-muted-symbolic",
|
||||
"audio-speakers-symbolic",
|
||||
"build-configure-symbolic",
|
||||
"bullet-symbolic",
|
||||
"chain-link-symbolic",
|
||||
"channel-insecure-symbolic",
|
||||
"channel-secure-symbolic",
|
||||
"chat-symbolic",
|
||||
"edit-clear-symbolic",
|
||||
"edit-copy-symbolic",
|
||||
"edit-cut-symbolic",
|
||||
"edit-find-symbolic",
|
||||
"edit-paste-symbolic",
|
||||
"eye-not-looking-symbolic",
|
||||
"firefox-symbolic",
|
||||
"folder-download-symbolic",
|
||||
"folder-symbolic",
|
||||
"general-properties-symbolic",
|
||||
"go-down-symbolic",
|
||||
"go-next-symbolic",
|
||||
"go-previous-symbolic",
|
||||
"go-up-symbolic",
|
||||
"history-undo-symbolic",
|
||||
"info-outline-symbolic",
|
||||
"key-symbolic",
|
||||
"list-add-symbolic",
|
||||
"mail-unread-symbolic",
|
||||
"newspaper-symbolic",
|
||||
"non-starred-symbolic",
|
||||
"open-menu-symbolic",
|
||||
"pan-down-symbolic",
|
||||
"pan-end-symbolic",
|
||||
"pan-start-symbolic",
|
||||
"pan-up-symbolic",
|
||||
"pip-in-symbolic",
|
||||
"pip-out-symbolic",
|
||||
"play-large-disabled-symbolic",
|
||||
"preferences-system-symbolic",
|
||||
"preferences-system-time-symbolic",
|
||||
"printer-symbolic",
|
||||
"process-stop-symbolic",
|
||||
"security-high-symbolic",
|
||||
"security-low-symbolic",
|
||||
"select-symbolic",
|
||||
"settings-symbolic",
|
||||
"sidebar-show-symbolic",
|
||||
"sidebar-show-right-symbolic",
|
||||
"starred-symbolic",
|
||||
"tab-new-symbolic",
|
||||
"tab-symbolic",
|
||||
"user-home-symbolic",
|
||||
"view-fullscreen-symbolic",
|
||||
"view-more-horizontal-symbolic",
|
||||
"view-refresh-symbolic",
|
||||
"view-restore-symbolic",
|
||||
"window-close-symbolic",
|
||||
"window-maximize-symbolic",
|
||||
"window-minimize-symbolic",
|
||||
"window-new-symbolic",
|
||||
"window-restore-symbolic",
|
||||
"zoom-in-symbolic",
|
||||
"zoom-out-symbolic"
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 328 KiB |
|
After Width: | Height: | Size: 1.8 MiB |
|
|
@ -0,0 +1,11 @@
|
|||
/* about:newtab */
|
||||
|
||||
@-moz-document url("about:newtab"), url("about:home") {
|
||||
body {
|
||||
--newtab-background-color: var(--gnome-window-background) !important;
|
||||
--newtab-background-color-secondary: var(--gnome-menu-background) !important;
|
||||
--newtab-primary-action-background: var(--gnome-accent) !important;
|
||||
|
||||
background-color: var(--gnome-window-background) !important;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/* about:privatebrowsing */
|
||||
|
||||
@-moz-document url("about:privatebrowsing") {
|
||||
html.private {
|
||||
--background-color-canvas: var(--gnome-private-in-content-page-background) !important;
|
||||
|
||||
/* Used by headings in promo boxes Firefox shows (like an ad for Firefox Focus) */
|
||||
--in-content-text-color: var(--gnome-private-text-primary-color) !important;
|
||||
}
|
||||
.wordmark {
|
||||
fill: var(--gnome-private-wordmark) !important;
|
||||
}
|
||||
.showPrivate {
|
||||
color: var(--gnome-private-text-primary-color);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,262 @@
|
|||
/* Buttons Issues/Glitches fixes */
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* moz.button size */
|
||||
moz-button {
|
||||
--button-size-icon-small: var(--gnome-button-size) !important;
|
||||
}
|
||||
|
||||
/* Menulist */
|
||||
link[href="chrome://global/skin/menulist.css"] ~ dropmarker {
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
}
|
||||
|
||||
.button-menu-dropmarker {
|
||||
appearance: none !important;
|
||||
margin: 0 !important;
|
||||
margin-inline-start: 6px !important;
|
||||
}
|
||||
|
||||
/* Remove the header bar buttons' hover styles */
|
||||
#nav-bar {
|
||||
--toolbarbutton-active-background: transparent !important;
|
||||
--toolbarbutton-hover-background: transparent !important;
|
||||
}
|
||||
|
||||
/* Fix notification dropmarker */
|
||||
.popup-notification-dropmarker dropmarker {
|
||||
margin-inline-start: 0 !important;
|
||||
}
|
||||
.popup-notification-dropmarker > .button-box > hbox {
|
||||
display: -moz-box !important;
|
||||
}
|
||||
|
||||
/* Fix subviewbutton icon buttons alignment */
|
||||
.subviewbutton.subviewbutton-iconic:not(.subviewbutton-back, .unified-extensions-item-action-button) {
|
||||
justify-content: center !important;
|
||||
}
|
||||
|
||||
/* Fix hover background */
|
||||
#appMenu-fullscreen-button2 > .toolbarbutton-icon {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
/* Fix unified-extensions-item margin */
|
||||
toolbar .unified-extensions-item {
|
||||
margin-inline: 0 3px !important;
|
||||
}
|
||||
|
||||
/* menulist */
|
||||
#label-box:not([native]) {
|
||||
font-weight: 400 !important;
|
||||
padding: 0 8px;
|
||||
}
|
||||
dropmarker:not([native]) {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
/* Bookmark buttons */
|
||||
#nav-bar toolbarbutton.bookmark-item {
|
||||
width: auto !important;
|
||||
}
|
||||
#nav-bar toolbarbutton.bookmark-item .toolbarbutton-icon {
|
||||
margin-left: 6px;
|
||||
}
|
||||
#nav-bar toolbarbutton.bookmark-item .toolbarbutton-text {
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
/* Fix library animation */
|
||||
#library-animatable-box {
|
||||
--library-button-height: 46px !important;
|
||||
--library-icon-x: 1716px !important;
|
||||
/*--library-icon-x: 1715.9833984375px !important;*/
|
||||
}
|
||||
#library-button[animate] > .toolbarbutton-icon {
|
||||
fill: transparent !important;
|
||||
}
|
||||
|
||||
/* Fix toolbars close icons */
|
||||
.close-icon:not(.tab-close-button) .toolbarbutton-icon {
|
||||
height: 16px !important;
|
||||
width: 16px !important;
|
||||
margin: 6px !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
button.close {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
/* */
|
||||
#appMenu-popup .panel-banner-item[notificationid="update-restart"]::after {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Identity site popover buttons */
|
||||
.identity-popup-preferences-button:not(#hack) {
|
||||
list-style-image: url("chrome://browser/skin/settings.svg") !important;
|
||||
}
|
||||
#tracking-protection-preferences-button > .toolbarbutton-text {
|
||||
padding-inline-end: 0 !important;
|
||||
}
|
||||
.protections-popup-footer-button-label {
|
||||
margin-inline-start: 3px !important;
|
||||
}
|
||||
|
||||
/* Fix findbar buttons issues */
|
||||
.findbar-container .findbar-find-previous image,
|
||||
.findbar-container .findbar-find-next image {
|
||||
margin: 6px !important;
|
||||
opacity: 1 !important;
|
||||
}
|
||||
.findbar-container toolbarbutton:focus {
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
/* Sidebar header button reset font size */
|
||||
#sidebar-header {
|
||||
font-size: 1em !important;
|
||||
}
|
||||
/* Sidebar header button sizing */
|
||||
#sidebar-switcher-target {
|
||||
flex: unset !important;
|
||||
}
|
||||
/* Sidebar header button arrow opacity */
|
||||
#sidebar-switcher-arrow {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
/* Sidebar history view */
|
||||
#viewButton {
|
||||
margin: 0 !important;
|
||||
margin-inline-start: 6px !important;
|
||||
}
|
||||
|
||||
/* Menulist */
|
||||
#identity-popup-popup-menulist {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
/* Auto complete popup button*/
|
||||
.autocomplete-richlistitem[type="loginsFooter"] {
|
||||
margin: 4px 4px 0 4px !important;
|
||||
}
|
||||
|
||||
/* Identity popup tracking protection button */
|
||||
.tracking-protection-button {
|
||||
margin-inline-end: 0 !important;
|
||||
}
|
||||
|
||||
/* Identity popup delete permission button */
|
||||
.identity-popup-permission-remove-button {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
/* Identity popup expander button */
|
||||
#identity-popup-security {
|
||||
-moz-box-align: center;
|
||||
}
|
||||
#identity-popup-security-expander {
|
||||
width: 34px !important;
|
||||
}
|
||||
#identity-popup-security-expander .button-icon {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
/* Protections popup */
|
||||
#protections-popup-info-button {
|
||||
margin: 0 !important;
|
||||
margin-inline-end: 0 !important;
|
||||
}
|
||||
.protections-popup-footer-icon {
|
||||
display: none !important;
|
||||
}
|
||||
.protections-popup-footer-button-label {
|
||||
margin-inline-start: 0 !important;
|
||||
}
|
||||
#protections-popup-footer-protection-type-label {
|
||||
margin-inline-end: 0 !important;
|
||||
margin-block: 0 !important;
|
||||
}
|
||||
|
||||
/* Close button */
|
||||
.close-icon:not(.tab-close-button) .toolbarbutton-icon {
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
/* Downloads button */
|
||||
#downloads-indicator-progress-inner {
|
||||
background: conic-gradient(var(--gnome-toolbar-icon-fill) var(--download-progress-pcent), transparent var(--download-progress-pcent)) !important;
|
||||
background-color: var(--gnome-button-active-background) !important;
|
||||
}
|
||||
#downloads-indicator-progress-outer,
|
||||
#downloads-indicator-start-image,
|
||||
#downloads-indicator-finish-image {
|
||||
border: 0 !important;
|
||||
padding: 0 !important;
|
||||
border-radius: 100% !important;
|
||||
}
|
||||
#downloads-indicator-progress-outer,
|
||||
#downloads-indicator-start-image {
|
||||
background: var(--gnome-toolbar-border-color) !important;
|
||||
}
|
||||
#downloads-indicator-finish-image {
|
||||
background: var(--gnome-toolbar-icon-fill) !important;
|
||||
}
|
||||
|
||||
#downloads-button[progress="true"] #downloads-indicator-progress-outer {
|
||||
visibility: visible !important;
|
||||
}
|
||||
#downloads-button:not([progress="true"]) #downloads-indicator-icon {
|
||||
visibility: visible !important;
|
||||
}
|
||||
|
||||
/* Toolbar Animations */
|
||||
#downloads-button .toolbarbutton-animatable-box {
|
||||
top: 8px !important;
|
||||
left: 8px !important;
|
||||
}
|
||||
#downloads-button .toolbarbutton-animatable-box,
|
||||
#downloads-button .toolbarbutton-animatable-image,
|
||||
#downloads-indicator-progress-inner {
|
||||
height: 16px !important;
|
||||
width: 16px !important;
|
||||
}
|
||||
#downloads-button .toolbarbutton-animatable-image,
|
||||
#stop-reload-button .toolbarbutton-animatable-image:not(#hack),
|
||||
#nav-bar-overflow-button .toolbarbutton-animatable-image:not(#hack) {
|
||||
--anim-steps: 1 !important;
|
||||
transform: none !important;
|
||||
list-style-image: none !important;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Panel banner */
|
||||
#appMenu-popup .panel-banner-item {
|
||||
margin: 0 0 6px !important;
|
||||
}
|
||||
#appMenu-popup .panel-banner-item > .toolbarbutton-text {
|
||||
margin-inline: 0 !important;
|
||||
}
|
||||
|
||||
/* User menu */
|
||||
#fxa-toolbar-menu-button .toolbarbutton-badge-stack {
|
||||
padding: 0 !important;
|
||||
}
|
||||
#fxa-avatar-image {
|
||||
min-height: 24px !important;
|
||||
width: 24px !important;
|
||||
}
|
||||
|
||||
/* Translation */
|
||||
#select-translations-panel-settings-button > .toolbarbutton-text {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* OPTIONAL: Hide unified-extensions-button */
|
||||
@media -moz-pref("gnomeTheme.hideUnifiedExtensions") {
|
||||
#unified-extensions-button {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,266 @@
|
|||
/* Buttons */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Override vars */
|
||||
:root {
|
||||
/* moz-button */
|
||||
--button-border-radius: var(--gnome-button-radius) !important;
|
||||
--button-background-color: var(--gnome-button-background) !important;
|
||||
--button-background-color-hover: var(--gnome-button-hover-background) !important;
|
||||
--button-background-color-active: var(--gnome-button-active-background) !important;
|
||||
--button-background-color-ghost-hover: var(--gnome-hover-color) !important;
|
||||
--button-background-color-ghost-active: var(--gnome-active-color) !important;
|
||||
}
|
||||
|
||||
/* Hide buttons separator */
|
||||
#nav-bar .toolbaritem-combined-buttons separator {
|
||||
display: none !important;
|
||||
}
|
||||
#appMenu-popup .toolbaritem-combined-buttons toolbarseparator {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
menulist,
|
||||
.customizationmode-button,
|
||||
#nav-bar toolbarbutton:not(#urlbar-zoom-button):not(.subviewbutton):not(.titlebar-button):not(#searchmode-switcher-close, #urlbar-searchmode-switcher),
|
||||
:root[inFullscreen] .titlebar-button.titlebar-restore,
|
||||
.subviewbutton.panel-subview-footer,
|
||||
.panel-footer button,
|
||||
#downloadsPanel-mainView .download-state .downloadButton,
|
||||
#appMenu-popup .panel-banner-item,
|
||||
#appMenu-popup .toolbaritem-combined-buttons toolbarbutton:not(#appMenu-fxa-label),
|
||||
#context-navigation menuitem,
|
||||
.identity-popup-preferences-button:not(#hack),
|
||||
.findbar-container toolbarbutton,
|
||||
#sidebar-switcher-target,
|
||||
#viewButton,
|
||||
.close-icon:not(.tab-close-button),
|
||||
button.close,
|
||||
.menulist-label-box,
|
||||
.expander-down, .expander-up,
|
||||
.notification-button,
|
||||
#identity-popup-security-expander,
|
||||
.panel-info-button,
|
||||
.panel-button,
|
||||
#PanelUI-panic-view-button,
|
||||
.tracking-protection-button,
|
||||
.dialog-button,
|
||||
.autocomplete-richlistitem[type="loginsFooter"],
|
||||
.dialog-button-box button,
|
||||
.searchbar-engine-one-off-item,
|
||||
.permission-popup-permission-remove-button,
|
||||
.button.connect-device,
|
||||
#item-choose button,
|
||||
#editBMPanel_newFolderButton,
|
||||
.unified-extensions-item-menu-button {
|
||||
-moz-appearance: none !important;
|
||||
align-items: center !important;
|
||||
background-color: var(--gnome-button-background) !important;
|
||||
border-radius: var(--gnome-button-radius) !important;
|
||||
border: 0 !important;
|
||||
color: var(--gnome-window-color) !important;
|
||||
font: menu !important;
|
||||
font-weight: bold !important;
|
||||
max-height: var(--gnome-button-size) !important;
|
||||
min-height: var(--gnome-button-size) !important;
|
||||
min-width: var(--gnome-button-size) !important;
|
||||
outline: 0 !important;
|
||||
padding: 0 1px !important;
|
||||
transition: background var(--gnome-animation-time);
|
||||
-moz-box-align: center !important;
|
||||
|
||||
&:not([disabled="true"]) {
|
||||
/* Hover buttons */
|
||||
&:hover {
|
||||
outline: 0 !important;
|
||||
background-color: var(--gnome-button-hover-background) !important;
|
||||
}
|
||||
/* Active buttons */
|
||||
&:active, &.active {
|
||||
background-color: var(--gnome-button-active-background) !important;
|
||||
}
|
||||
/* Checked buttons */
|
||||
&[selected], &[checked], &[open] {
|
||||
background-color: var(--gnome-button-checked-background) !important;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--gnome-button-checked-hover-background) !important;
|
||||
}
|
||||
&:active {
|
||||
background-color: var(--gnome-button-checked-active-background) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Disabled buttons */
|
||||
&[disabled="true"] {
|
||||
opacity: 0.5 !important;
|
||||
}
|
||||
|
||||
&[_moz-menuactive] {
|
||||
outline: 2px solid var(--gnome-focus-border-color) !important;
|
||||
outline-offset: -2px !important;
|
||||
}
|
||||
}
|
||||
.subviewbutton-iconic {
|
||||
-moz-box-pack: center !important;
|
||||
}
|
||||
|
||||
/* Flat Buttons */
|
||||
#nav-bar toolbarbutton:not(#urlbar-zoom-button):not(.subviewbutton):not(.titlebar-button):not(#searchmode-switcher-close, #urlbar-searchmode-switcher),
|
||||
:root[inFullscreen] .titlebar-button.titlebar-restore,
|
||||
.close-icon:not(.tab-close-button),
|
||||
button.close,
|
||||
.panel-info-button,
|
||||
.permission-popup-permission-remove-button,
|
||||
.unified-extensions-item-menu-button {
|
||||
background-color: transparent !important;
|
||||
transition: background var(--gnome-animation-time);
|
||||
|
||||
&:not([disabled="true"]) {
|
||||
/* Hover buttons */
|
||||
&:hover {
|
||||
background-color: var(--gnome-hover-color) !important;
|
||||
}
|
||||
/* Active buttons */
|
||||
&:active {
|
||||
background-color: var(--gnome-active-color) !important;
|
||||
}
|
||||
/* Checked buttons */
|
||||
&[selected], &[checked], &[open] {
|
||||
background-color: var(--gnome-selected-color) !important;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--gnome-selected-hover-color) !important;
|
||||
}
|
||||
&:active {
|
||||
background-color: var(--gnome-selected-active-color) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Disabled buttons */
|
||||
&[disabled="true"] {
|
||||
opacity: 0.3 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Buttons with suggested action */
|
||||
#appMenu-popup .panel-banner-item[notificationid="update-restart"],
|
||||
button.popup-notification-primary-button:not(#hack),
|
||||
#editBookmarkPanelDoneButton,
|
||||
#tracking-action-block,
|
||||
.button.connect-device {
|
||||
--gnome-button-background: var(--gnome-button-suggested-background) !important;
|
||||
--gnome-button-hover-background: var(--gnome-button-suggested-background) !important;
|
||||
--gnome-button-active-background: var(--gnome-button-suggested-background) !important;
|
||||
color: white !important;
|
||||
|
||||
&:not([disabled="true"]) {
|
||||
&:hover {
|
||||
background-image: linear-gradient(rgba(255, 255, 255, .1), rgba(255, 255, 255, .1)) !important;
|
||||
}
|
||||
&:active {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, .2), rgba(0, 0, 0, .2)) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Buttons with destructive action */
|
||||
.panel-footer button#editBookmarkPanelRemoveButton,
|
||||
#PanelUI-panic-view-button {
|
||||
--gnome-button-background: var(--gnome-button-destructive-background) !important;
|
||||
--gnome-button-hover-background: var(--gnome-button-destructive-hover-background) !important;
|
||||
--gnome-button-active-background: var(--gnome-button-destructive-active-background) !important;
|
||||
color: var(--gnome-destructive) !important;
|
||||
}
|
||||
|
||||
/* Buttons with margins */
|
||||
#nav-bar toolbarbutton:not(#urlbar-zoom-button, #urlbar-searchmode-switcher):not(.subviewbutton):not(.titlebar-button),
|
||||
.subviewbutton.panel-subview-footer:not(:only-of-type),
|
||||
.panel-footer button:not(:only-of-type):not(:last-child) {
|
||||
margin: 0 calc(var(--gnome-toolbar-spacing) / 2) !important;
|
||||
}
|
||||
.close-icon:not(.tab-close-button) {
|
||||
margin-left: var(--gnome-toolbar-spacing) !important;
|
||||
}
|
||||
|
||||
/* Text buttons */
|
||||
menulist,
|
||||
.customizationmode-button,
|
||||
#sidebar-switcher-target,
|
||||
.subviewbutton.panel-subview-footer,
|
||||
.panel-footer button,
|
||||
#appMenu-popup .panel-banner-item,
|
||||
#appMenu-popup #appMenu-zoomReset-button2:not(#hack),
|
||||
#tracking-protection-preferences-button:not(#hack),
|
||||
.findbar-container toolbarbutton.findbar-button,
|
||||
.notification-button,
|
||||
#PanelUI-panic-view-button,
|
||||
.tracking-protection-button,
|
||||
.panel-button,
|
||||
.dialog-button,
|
||||
.autocomplete-richlistitem[type="loginsFooter"],
|
||||
.dialog-button-box button,
|
||||
.toolbaritem-combined-buttons:is(:not([cui-areatype="toolbar"]), [overflowedItem="true"]) > #appMenu-fxa-label2:not(#hack),
|
||||
.button.connect-device,
|
||||
#item-choose button,
|
||||
#editBMPanel_newFolderButton {
|
||||
padding: 2px 9px !important;
|
||||
}
|
||||
.subviewbutton.panel-subview-footer label,
|
||||
.panel-footer button,
|
||||
#appMenu-popup .panel-banner-item .toolbarbutton-text,
|
||||
#appMenu-popup #appMenu-zoomReset-button2:not(#hack),
|
||||
#tracking-protection-preferences-button:not(#hack),
|
||||
.findbar-container toolbarbutton.findbar-button,
|
||||
.notification-button,
|
||||
#PanelUI-panic-view-button,
|
||||
.tracking-protection-button,
|
||||
.dialog-button,
|
||||
.autocomplete-richlistitem[type="loginsFooter"],
|
||||
.dialog-button-box button,
|
||||
.button.connect-device,
|
||||
#item-choose button {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
/* Circle buttons */
|
||||
#downloadsPanel-mainView .download-state .downloadButton,
|
||||
.permission-popup-permission-remove-button:not(#hack) {
|
||||
border-radius: 100% !important;
|
||||
}
|
||||
|
||||
/* Combined buttons */
|
||||
#nav-bar .toolbaritem-combined-buttons:not(.unified-extensions-item) toolbarbutton:not(:last-of-type):not(#hack),
|
||||
#appMenu-popup .toolbaritem-combined-buttons:not(.unified-extensions-item) toolbarbutton:not(:last-of-type):not(#appMenu-zoomEnlarge-button),
|
||||
#context-navigation menuitem:not(:last-of-type),
|
||||
.findbar-container toolbarbutton.findbar-find-previous,
|
||||
.findbar-button:not(:last-of-type),
|
||||
.search-panel-one-offs .searchbar-engine-one-off-item:not(:last-child),
|
||||
.popup-notification-secondary-button:not([dropmarkerhidden="true"]):not(#hack) {
|
||||
border-start-end-radius: 0 !important;
|
||||
border-end-end-radius: 0 !important;
|
||||
border-right-width: 0 !important;
|
||||
margin-inline-end: 0 !important;
|
||||
}
|
||||
|
||||
#nav-bar .toolbaritem-combined-buttons:not(.unified-extensions-item) toolbarbutton:not(:first-of-type):not(#hack),
|
||||
#appMenu-popup .toolbaritem-combined-buttons:not(.unified-extensions-item) toolbarbutton:not(:first-of-type):not(#appMenu-fullscreen-button),
|
||||
#context-navigation menuitem:not(:first-of-type),
|
||||
.findbar-container toolbarbutton.findbar-find-previous,
|
||||
.findbar-container toolbarbutton.findbar-find-next,
|
||||
.findbar-button:not(:first-of-type),
|
||||
.search-panel-one-offs .searchbar-engine-one-off-item:not(:first-child),
|
||||
.popup-notification-dropmarker:not(#hack) {
|
||||
border-end-start-radius: 0 !important;
|
||||
border-start-start-radius: 0 !important;
|
||||
margin-inline-start: 0 !important;
|
||||
}
|
||||
|
||||
#nav-bar .toolbaritem-combined-buttons:not(.unified-extensions-item) {
|
||||
margin-left: 0 !important;
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
/* Controls */
|
||||
/* Switchers, Checkboxes, etc. */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Checkbox */
|
||||
input[type="checkbox"],
|
||||
checkbox:not(.treenode-checkbox) > .checkbox-check {
|
||||
appearance: none !important;
|
||||
border: 0 !important;
|
||||
border-radius: 6px !important;
|
||||
color: var(--gnome-window-color) !important;
|
||||
height: 20px !important;
|
||||
width: 20px !important;
|
||||
}
|
||||
input[type="checkbox"]:not(:checked),
|
||||
checkbox:not(.treenode-checkbox) > .checkbox-check:not([checked]) {
|
||||
background-color: transparent !important;
|
||||
box-shadow: inset 0 0 0 2px var(--gnome-trough-background);
|
||||
}
|
||||
input[type="checkbox"]:not(:checked):hover,
|
||||
checkbox:not(.treenode-checkbox) > .checkbox-check:not([checked]):hover {
|
||||
box-shadow: inset 0 0 0 2px var(--gnome-trough-hover-background);
|
||||
}
|
||||
input[type="checkbox"]:checked,
|
||||
checkbox:not(.treenode-checkbox) > .checkbox-check[checked] {
|
||||
background-color: var(--gnome-accent-bg) !important;
|
||||
/* NOTE: var(--gnome-icon-select-symbolic) doesn't load in modal dialogs */
|
||||
background-image: url("../icons/custom/select-fixed-symbolic.svg") !important;
|
||||
background-size: 14px !important;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
fill: white !important;
|
||||
-moz-context-properties: fill;
|
||||
}
|
||||
|
||||
/* Radio */
|
||||
input[type="radio"],
|
||||
radio > .radio-check {
|
||||
appearance: none !important;
|
||||
border: 0 !important;
|
||||
border-radius: 50% !important;
|
||||
color: var(--gnome-window-color) !important;
|
||||
height: 20px !important;
|
||||
padding: 3px !important;
|
||||
width: 20px !important;
|
||||
|
||||
radiogroup:focus-visible radio[focused] > & {
|
||||
outline: 2px solid var(--gnome-focus-border-color) !important;
|
||||
outline-offset: 2px !important;
|
||||
}
|
||||
}
|
||||
input[type="radio"][aria-checked="false"],
|
||||
radio > .radio-check:not([selected]) {
|
||||
background-color: transparent !important;
|
||||
box-shadow: inset 0 0 0 2px var(--gnome-trough-background);
|
||||
}
|
||||
input[type="radio"][aria-checked="false"]:hover,
|
||||
radio > .radio-check:not([selected]):hover {
|
||||
box-shadow: inset 0 0 0 2px var(--gnome-trough-hover-background);
|
||||
}
|
||||
input[type="radio"][aria-checked="true"],
|
||||
radio > .radio-check[selected] {
|
||||
background-color: var(--gnome-accent-bg) !important;
|
||||
/* NOTE: var(--gnome-icon-bullet-symbolic) doesn't load in modal dialogs */
|
||||
background-image: url("../icons/custom/bullet-fixed-symbolic.svg") !important;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
fill: white !important;
|
||||
-moz-context-properties: fill;
|
||||
}
|
||||
|
||||
.radio-label-box {
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
.radio-label {
|
||||
margin-inline-start: 3px !important;
|
||||
}
|
||||
|
||||
/* Switchers */
|
||||
.toggle-button {
|
||||
--toggle-height: 26px !important;
|
||||
--toggle-width: 48px !important;
|
||||
--toggle-border-radius: 24px !important;
|
||||
--toggle-border-color: var(--gnome-trough-background) !important;
|
||||
--toggle-background-color: var(--gnome-trough-background) !important;
|
||||
--toggle-background-color-pressed: var(--gnome-accent-bg) !important;
|
||||
--toggle-dot-height: 22px !important;
|
||||
--toggle-dot-width: 22px !important;
|
||||
--toggle-dot-background-color: #FFF !important;
|
||||
--toggle-dot-background-color-on-pressed: #FFF !important;
|
||||
--toggle-dot-transform-x: calc(var(--toggle-width) - 4 * var(--toggle-dot-margin) - var(--toggle-dot-width)) !important;
|
||||
|
||||
border: 0 !important;
|
||||
}
|
||||
.toggle-button::before {
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, .2);
|
||||
}
|
||||
|
||||
link[href="chrome://global/content/elements/moz-toggle.css"] ~ .label-wrapper {
|
||||
margin-inline: 0 !important;
|
||||
}
|
||||
link[href="chrome://global/content/elements/moz-toggle.css"] ~ .description {
|
||||
--input-space-offset: calc(48px + 12px) !important;
|
||||
margin-block-start: 0 !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
/* GNOME CSD styles for headerbar on Firefox */
|
||||
|
||||
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
:root[customtitlebar] {
|
||||
/* Headerbar top border corners rounded */
|
||||
&[sizemode="normal"]:not([gtktiledwindow="true"]) #nav-bar {
|
||||
border-radius: env(-moz-gtk-csd-titlebar-radius, 8px) env(-moz-gtk-csd-titlebar-radius, 8px) 0 0 !important;
|
||||
}
|
||||
|
||||
/* Always show nav bar window buttons*/
|
||||
#nav-bar > .titlebar-buttonbox-container {
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
#toolbar-menubar {
|
||||
/* Prevent menubar from breaking */
|
||||
&:not([inactive=true]) {
|
||||
height: 30px !important;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
/* Always hide menu bar window buttons*/
|
||||
& > .titlebar-buttonbox-container {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
&[inFullscreen] {
|
||||
/* Remove close and minimize buttons from fullscreen buttons */
|
||||
.titlebar-buttonbox-container .titlebar-button:not(.titlebar-restore) {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Force the restore button to appear regardless of maximize button's status */
|
||||
&:not([inDOMFullscreen]) {
|
||||
.titlebar-buttonbox-container {
|
||||
visibility: visible !important;
|
||||
}
|
||||
.titlebar-restore {
|
||||
display: inherit !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:not([inFullscreen]) {
|
||||
.titlebar-buttonbox-container {
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
/* Window buttons style */
|
||||
.titlebar-button {
|
||||
background: var(--gnome-button-background) !important;
|
||||
border-radius: 100% !important;
|
||||
height: 24px !important;
|
||||
transition: background var(--gnome-animation-time);
|
||||
width: 24px !important;
|
||||
|
||||
&:not([disabled]):hover {
|
||||
background: var(--gnome-button-hover-background) !important;
|
||||
}
|
||||
|
||||
&:not([disabled]):active {
|
||||
background: var(--gnome-button-active-background) !important;
|
||||
}
|
||||
|
||||
&::-moz-window-inactive {
|
||||
filter: opacity(0.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.titlebar-buttonbox-container {
|
||||
align-items: center;
|
||||
padding: 0 3px;
|
||||
|
||||
.titlebar-buttonbox {
|
||||
appearance: none !important;
|
||||
gap: 13px;
|
||||
|
||||
.titlebar-button {
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
|
||||
& > .toolbarbutton-icon {
|
||||
@media not -moz-pref("gnomeTheme.noThemedIcons") {
|
||||
background: none !important;
|
||||
appearance: none !important;
|
||||
height: 16px !important;
|
||||
padding: 0 !important;
|
||||
stroke: none !important;
|
||||
width: 16px !important;
|
||||
-moz-context-properties: fill, fill-opacity !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media -moz-pref("widget.gtk.non-native-titlebar-buttons.enabled") {
|
||||
&:-moz-lwtheme { /* Override config */
|
||||
& > .toolbarbutton-icon {
|
||||
appearance: auto !important
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.titlebar-spacer {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* OPTIONAL: Allow draging the window from headerbar buttons */
|
||||
@media -moz-pref("gnomeTheme.dragWindowHeaderbarButtons") {
|
||||
:root[customtitlebar] #nav-bar *,
|
||||
:root[customtitlebar] #titlebar .titlebar-button {
|
||||
-moz-window-dragging: drag;
|
||||
}
|
||||
|
||||
/* Avoid window dragging from urlbar */
|
||||
:root[customtitlebar] #nav-bar .urlbar-input-box,
|
||||
:root[customtitlebar] #nav-bar .urlbar-input-box * {
|
||||
-moz-window-dragging: no-drag !important;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,207 @@
|
|||
/* Dialogs */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
window {
|
||||
padding: 0 !important;
|
||||
width: initial !important;
|
||||
}
|
||||
|
||||
dialog {
|
||||
padding: var(--gnome-dialog-padding) !important;
|
||||
}
|
||||
|
||||
/* Dialog box */
|
||||
.dialogBox {
|
||||
border-radius: var(--gnome-dialog-radius) !important;
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.dialogBox[resizable="true"] {
|
||||
margin-top: var(--gnome-dialog-padding) !important;
|
||||
}
|
||||
|
||||
.dialogOverlay[topmost="true"]:not(.dialogOverlay-window-modal-dialog-subdialog), #window-modal-dialog::backdrop {
|
||||
background-color: rgba(0, 0, 0, .5) !important;
|
||||
}
|
||||
|
||||
/* Modal dialogs */
|
||||
#window-modal-dialog {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
window[role="dialog"] {
|
||||
background: var(--gnome-menu-background) !important;
|
||||
border: 0 !important;
|
||||
box-shadow: var(--gnome-menu-shadow) !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
dialog#handling {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.tab-prompt-dialog .dialogOverlay {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* Content */
|
||||
dialog {
|
||||
&:not(.sizeDetermined) {
|
||||
display: grid !important;
|
||||
justify-content: stretch;
|
||||
min-width: fit-content;
|
||||
}
|
||||
|
||||
#titleContainer {
|
||||
justify-content: center !important;
|
||||
}
|
||||
|
||||
#titleCropper {
|
||||
&[overflown] {
|
||||
mask-image: none !important;
|
||||
|
||||
#titleText {
|
||||
display: inline-block !important;
|
||||
max-width: 100% !important;
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
|
||||
&:not([nomaskfade]) {
|
||||
display: initial !important;
|
||||
}
|
||||
}
|
||||
|
||||
#titleText {
|
||||
font-size: 20px !important;
|
||||
font-weight: 800 !important;
|
||||
text-align: center !important;
|
||||
white-space: initial !important;
|
||||
}
|
||||
|
||||
.titleIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#description-box {
|
||||
text-align: center;
|
||||
#description {
|
||||
font-size: 20px !important;
|
||||
font-weight: 800 !important;
|
||||
}
|
||||
}
|
||||
|
||||
#infoContainer {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#checkboxContainer {
|
||||
align-items: center !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
.dialog-button-box {
|
||||
background: transparent !important;
|
||||
display: flex !important;
|
||||
gap: 12px;
|
||||
margin-top: auto;
|
||||
padding: 0 !important;
|
||||
|
||||
/* if dialog has at least 3 buttons */
|
||||
&:has(button:not([hidden])[dlgtype="extra1"]) {
|
||||
min-width: 40rem;
|
||||
}
|
||||
|
||||
button {
|
||||
min-height: 44px !important;
|
||||
max-height: unset !important;
|
||||
padding: 10px 14px !important;
|
||||
margin: 0 !important;
|
||||
border-radius: 12px !important;
|
||||
flex: 1;
|
||||
border-bottom: 0 !important;
|
||||
|
||||
.button-box {
|
||||
max-width: 100%;
|
||||
.button-text {
|
||||
max-width: 100%;
|
||||
&::before {
|
||||
max-width: 100% !important;
|
||||
overflow: hidden !important;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.button-spacer {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Browser dialogs */
|
||||
#dialogGrid {
|
||||
padding-bottom: 8px !important;
|
||||
}
|
||||
|
||||
/* Bookmark dialog */
|
||||
#bookmarkpropertiesdialog #editBookmarkPanelContent {
|
||||
padding-bottom: var(--gnome-dialog-padding) !important;
|
||||
}
|
||||
|
||||
/* Hadler dialog */
|
||||
#os-default-handler {
|
||||
image {
|
||||
display: none !important;
|
||||
}
|
||||
.name {
|
||||
font-weight: normal !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Fullscreen warning */
|
||||
#fullscreen-warning {
|
||||
background: rgba(0, 0, 0, 0.7) !important;
|
||||
border-radius: 150px !important;
|
||||
border: none !important;
|
||||
color: rgba(255, 255, 255, .9) !important;
|
||||
padding: 6px 12px !important;
|
||||
|
||||
&::before {
|
||||
background-image: var(--gnome-icon-channel-secure-symbolic) !important;
|
||||
height: 16px !important;
|
||||
width: 16px !important;
|
||||
}
|
||||
|
||||
.pointerlockfswarning-domain-text {
|
||||
font-size: 16px !important;
|
||||
font-weight: normal !important;
|
||||
margin: 0 12px 0 6px !important;
|
||||
}
|
||||
}
|
||||
|
||||
#fullscreen-exit-button {
|
||||
appearance: none !important;
|
||||
background-color: rgba(255, 255, 255, .09) !important;
|
||||
border-radius: var(--gnome-button-radius) !important;
|
||||
border: 0 !important;
|
||||
padding: 2px 16px !important;
|
||||
height: var(--gnome-button-size) !important;
|
||||
min-height: var(--gnome-button-size) !important;
|
||||
color: rgba(255, 255, 255, .9) !important;
|
||||
font-weight: bold !important;
|
||||
transition: background var(--gnome-animation-time);
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(255, 255, 255, .135) !important;
|
||||
}
|
||||
&:active {
|
||||
background-color: rgba(255, 255, 255, .27) !important;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,133 @@
|
|||
/* Entries */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Entries */
|
||||
input[type="text"]:not(.tree-input),
|
||||
input[type="password"],
|
||||
#urlbar,
|
||||
#searchbar,
|
||||
link[href="chrome://global/content/elements/moz-input-common.css"] ~ #input,
|
||||
.findbar-textbox,
|
||||
.tabsFilter,
|
||||
.popup-notification-body input {
|
||||
-moz-appearance: none !important;
|
||||
background: var(--gnome-entry-background) !important;
|
||||
outline: 2px solid transparent !important;
|
||||
border: 0 !important;
|
||||
border-radius: var(--gnome-entry-radius) !important;
|
||||
box-shadow: none !important;
|
||||
color: var(--gnome-entry-color) !important;
|
||||
height: var(--gnome-entry-height) !important;
|
||||
max-height: var(--gnome-entry-height) !important;
|
||||
margin: 0 !important;
|
||||
padding: 6px 9px !important;
|
||||
box-sizing: border-box;
|
||||
transition-property: outline, outline-offset;
|
||||
transition-duration: var(--gnome-animation-time);
|
||||
|
||||
/* Error */
|
||||
&[status="notfound"] {
|
||||
color: var(--gnome-error) !important;
|
||||
}
|
||||
|
||||
&:-moz-window-inactive {
|
||||
color: var(--gnome-inactive-entry-color) !important;
|
||||
outline: 2px solid transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Entries focused */
|
||||
input[type="text"]:not(.tree-input):focus,
|
||||
input[type="password"]:focus,
|
||||
#urlbar[breakout][breakout-extend],
|
||||
#urlbar[focused]:not([suppress-focus-border]),
|
||||
#searchbar:focus-within,
|
||||
link[href="chrome://global/content/elements/moz-input-common.css"] ~ #input:focus,
|
||||
.findbar-textbox[focused],
|
||||
.findbar-textbox:focus,
|
||||
.tabsFilter[focused],
|
||||
.popup-notification-body input:focus {
|
||||
outline: 2px solid var(--gnome-entry-focused-border-color) !important;
|
||||
outline-offset: -2px;
|
||||
|
||||
/* Error */
|
||||
&[status="notfound"] {
|
||||
outline-color: var(--gnome-entry-error-focused-border-color) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Entries combined */
|
||||
.findbar-textbox:not(.minimal) {
|
||||
border-top-right-radius: 0 !important;
|
||||
border-bottom-right-radius: 0 !important;
|
||||
border-right-width: 0 !important;
|
||||
}
|
||||
|
||||
/* Entry button */
|
||||
.identity-box-button,
|
||||
#tracking-protection-icon-container,
|
||||
#notification-popup-box,
|
||||
.urlbar-page-action,
|
||||
.urlbar-icon {
|
||||
fill-opacity: 0.8 !important;
|
||||
transition-property: fil, fill-opacity, opacity;
|
||||
transition-duration: var(--gnome-animation-time);
|
||||
}
|
||||
|
||||
.identity-box-button:hover:not([open="true"]),
|
||||
#tracking-protection-icon-container:hover:not([open="true"]),
|
||||
#notification-popup-box:hover:not([open="true"]),
|
||||
.urlbar-page-action:hover:not([open="true"]),
|
||||
.urlbar-page-action:hover:not([open="true"]) .urlbar-icon,
|
||||
.urlbar-icon:not([disabled]):hover {
|
||||
background: none !important;
|
||||
fill-opacity: 1 !important;
|
||||
}
|
||||
|
||||
.identity-box-button:hover:active,
|
||||
.identity-box-button[open=true],
|
||||
#tracking-protection-icon-container:hover:active,
|
||||
#tracking-protection-icon-container[open=true],
|
||||
#notification-popup-box:hover:active,
|
||||
#notification-popup-box[open=true],
|
||||
.urlbar-page-action:hover:active,
|
||||
.urlbar-page-action[open=true],
|
||||
.urlbar-page-action:hover:active .urlbar-icon,
|
||||
.urlbar-page-action[open=true] .urlbar-icon {
|
||||
background: none !important;
|
||||
fill-opacity: 1 !important;
|
||||
}
|
||||
|
||||
/* Entries fixes */
|
||||
#urlbar-container, #search-container {
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
.urlbar-input-container {
|
||||
background: transparent !important;
|
||||
border: 0 !important;
|
||||
}
|
||||
#urlbar, #searchbar {
|
||||
margin: 0 calc(var(--gnome-toolbar-spacing) / 2) !important;
|
||||
padding: 0 3px !important;
|
||||
&[unifiedsearchbutton-available=""] {
|
||||
padding-inline-start: 0 !important;
|
||||
}
|
||||
|
||||
}
|
||||
.searchbar-textbox {
|
||||
border: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
min-height: auto !important;
|
||||
}
|
||||
#searchbar > .searchbar-textbox[focused] .searchbar-search-button:not(#hack) {
|
||||
margin: 0 !important;
|
||||
}
|
||||
#urlbar[focused]:not([suppress-focus-border]) > #urlbar-background {
|
||||
outline: 0 !important;
|
||||
}
|
||||
link[href="chrome://global/content/elements/moz-input-common.css"] ~ #input {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
/* Find bar */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
findbar {
|
||||
padding: var(--gnome-toolbar-padding) !important;
|
||||
position: relative;
|
||||
|
||||
.findbar-container {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
position: relative;
|
||||
flex-direction: row;
|
||||
margin: 0 !important;
|
||||
margin-inline-end: var(--gnome-toolbar-padding) !important;
|
||||
height: auto !important;
|
||||
|
||||
.findbar-textbox-wrapper {
|
||||
order: 0;
|
||||
}
|
||||
.findbar-label.found-matches {
|
||||
font-weight: normal !important;
|
||||
order: 1;
|
||||
}
|
||||
.findbar-label.findbar-find-status {
|
||||
font-weight: normal !important;
|
||||
order: 4;
|
||||
}
|
||||
checkbox {
|
||||
order: 2;
|
||||
}
|
||||
|
||||
.findbar-entire-word {
|
||||
margin-inline-end: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
.findbar-closebutton {
|
||||
margin: 0 !important;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
/* Header bar */
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Headerbar */
|
||||
#nav-bar {
|
||||
background: var(--gnome-headerbar-background) !important;
|
||||
border: 0 !important;
|
||||
padding: var(--gnome-toolbar-padding) calc(var(--gnome-toolbar-padding) / 2) !important;
|
||||
}
|
||||
|
||||
/* Add private window headerbar indicator */
|
||||
:root[privatebrowsingmode="temporary"] #nav-bar toolbarspring:first-of-type:before {
|
||||
background: var(--gnome-icon-eye-not-looking-symbolic) no-repeat;
|
||||
background-size: 64px 64px;
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
top: 0;
|
||||
transform: translate(15px, -9px);
|
||||
fill: var(--gnome-window-color) !important;
|
||||
fill-opacity: 0.15 !important;
|
||||
-moz-context-properties: fill, fill-opacity;
|
||||
}
|
||||
|
||||
/* Hide tabsbar default private browsing indicator */
|
||||
.private-browsing-indicator-with-label {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Overlay headerbar on fullscreen */
|
||||
@media -moz-pref("browser.fullscreen.autohide") {
|
||||
#navigator-toolbox[inFullscreen] {
|
||||
position: fixed !important;
|
||||
transition: margin var(--gnome-animation-time) ease-in-out 0s !important;
|
||||
line-height: 0;
|
||||
z-index: 1;
|
||||
width: 100vw;
|
||||
}
|
||||
|
||||
#navigator-toolbox[inFullscreen]:hover,
|
||||
#navigator-toolbox[inFullscreen]:focus-within {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
#navigator-toolbox[inFullscreen] > * {
|
||||
line-height: normal;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,604 @@
|
|||
/* Replace icons */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Icons color */
|
||||
.toolbarbutton-icon:not([class*="identity-color-"] .toolbarbutton-icon),
|
||||
link[href="chrome://global/content/elements/moz-button.css"] + button[type~="icon"],
|
||||
menuitem:not([class*='identity']) .menu-icon,
|
||||
#vertical-tabs-newtab-button .toolbarbutton-icon,
|
||||
.urlbar-page-action:not([readeractive]),
|
||||
.urlbar-icon,
|
||||
#blocked-permissions-container > .blocked-permission-icon,
|
||||
.button-icon:not(#hack),
|
||||
.bookmark-item[container],
|
||||
.notification-anchor-icon,
|
||||
.protections-popup-category::after,
|
||||
.protections-popup-footer-icon,
|
||||
#identity-popup-mainView .subviewbutton-nav::after,
|
||||
.widget-overflow-list .subviewbutton-nav::after,
|
||||
.PanelUI-subView .subviewbutton-nav::after,
|
||||
#identity-popup[connection^="secure"] .identity-popup-security-connection,
|
||||
.panel-info-button > image,
|
||||
.menu-right,
|
||||
.expander-down > .button-box,
|
||||
#sidebar-switcher-arrow,
|
||||
#sidebar-icon,
|
||||
#viewButton .button-menu-dropmarker,
|
||||
.menulist-label-box:after,
|
||||
.expander-up > .button-box,
|
||||
#urlbar:not(.searchButton) > .urlbar-input-container > #identity-box[pageproxystate="invalid"] > #identity-icon,
|
||||
.searchbar-search-icon,
|
||||
.textbox-search-sign,
|
||||
treechildren::-moz-tree-twisty,
|
||||
treechildren::-moz-tree-image,
|
||||
.item.client .item-twisty-container,
|
||||
menuitem[type="checkbox"],
|
||||
menuitem[type="checkbox"][checked="true"],
|
||||
menuitem[type="radio"],
|
||||
menuitem[type="radio"][checked="true"],
|
||||
.tab-icon-overlay,
|
||||
.tab-icon-stack::before,
|
||||
.close-icon:not(.tab-close-button),
|
||||
button.close::before,
|
||||
#urlbar-search-mode-indicator-close,
|
||||
#tracking-protection-icon,
|
||||
#identity-icon,
|
||||
#permissions-granted-icon,
|
||||
#downloads-indicator-icon,
|
||||
.textbox-search-clear,
|
||||
.urlbarView-type-icon,
|
||||
radio > .radio-check,
|
||||
link[href="chrome://global/skin/dropmarker.css"] + image,
|
||||
:root[customtitlebar] .titlebar-buttonbox .titlebar-button .toolbarbutton-icon {
|
||||
fill: var(--gnome-toolbar-icon-fill) !important;
|
||||
-moz-context-properties: fill;
|
||||
}
|
||||
.urlbar-icon:-moz-window-inactive,
|
||||
#urlbar:-moz-window-inactive image,
|
||||
.toolbarbutton-icon:-moz-window-inactive,
|
||||
:root[customtitlebar] .titlebar-buttonbox .titlebar-button .toolbarbutton-icon:-moz-window-inactive {
|
||||
opacity: 0.5 !important;
|
||||
}
|
||||
|
||||
/* Dimmed icons */
|
||||
#urlbar:not(.searchButton) > .urlbar-input-container > #identity-box[pageproxystate="invalid"] > #identity-icon,
|
||||
.searchbar-search-icon,
|
||||
.textbox-search-sign,
|
||||
.textbox-search-clear {
|
||||
opacity: 0.7 !important;
|
||||
}
|
||||
.textbox-search-clear:hover {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
/* Fix icons sizes */
|
||||
.permission-popup-permission-remove-button > .button-box > .button-icon,
|
||||
.menu-iconic-icon,
|
||||
link[href="chrome://global/skin/dropmarker.css"] + image,
|
||||
.toolbarbutton-combined-buttons-dropmarker {
|
||||
height: 16px !important;
|
||||
width: 16px !important;
|
||||
}
|
||||
/* Fix icon color */
|
||||
#sidebar-icon {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
treechildren::-moz-tree-twisty,
|
||||
treechildren::-moz-tree-image {
|
||||
fill-opacity: 1 !important;
|
||||
}
|
||||
|
||||
/* Icons active color */
|
||||
treechildren::-moz-tree-twisty(selected, focus),
|
||||
treechildren::-moz-tree-twisty(selected, focus, open),
|
||||
treechildren::-moz-tree-image(selected, focus),
|
||||
treechildren::-moz-tree-image(selected, focus, open),
|
||||
.item.client:focus .item-twisty-container,
|
||||
.sidebar-panel[lwt-sidebar-brighttext] .sidebar-placesTreechildren::-moz-tree-twisty,
|
||||
.sidebar-panel[lwt-sidebar-brighttext] .sidebar-placesTreechildren::-moz-tree-twisty(open) {
|
||||
fill: #fff !important;
|
||||
}
|
||||
|
||||
/* Fix flat buttons icons aproach */
|
||||
button.close::before {
|
||||
content: "";
|
||||
display: block;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Fix main menu zoom controls icons */
|
||||
#appMenu-zoom-controls2 .toolbarbutton-icon {
|
||||
padding: 0 !important;
|
||||
padding-block: 0 !important;
|
||||
padding-inline: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
@media not -moz-pref("gnomeTheme.noThemedIcons") {
|
||||
/* Scroll icons */
|
||||
#scrollbutton-up {
|
||||
list-style-image: var(--scrollbutton-icon-name) !important;
|
||||
}
|
||||
#scrollbutton-down {
|
||||
list-style-image: var(--scrollbutton-icon-name) !important;
|
||||
}
|
||||
arrowscrollbox {
|
||||
--scrollbutton-icon-name: var(--gnome-icon-pan-down-symbolic);
|
||||
}
|
||||
arrowscrollbox[orient="horizontal"] {
|
||||
--scrollbutton-icon-name: var(--gnome-icon-pan-start-symbolic);
|
||||
}
|
||||
|
||||
/* Popovers subview menu arrow */
|
||||
#identity-popup-mainView .subviewbutton-nav::after,
|
||||
.widget-overflow-list .subviewbutton-nav::after,
|
||||
.PanelUI-subView .subviewbutton-nav::after,
|
||||
.protections-popup-category::after,
|
||||
.subviewbutton-back .toolbarbutton-icon,
|
||||
.menu-right,
|
||||
menupopup > menu::after {
|
||||
fill-opacity: 1 !important;
|
||||
opacity: .3;
|
||||
}
|
||||
.menu-right {
|
||||
-moz-appearance: none !important;
|
||||
list-style-image: var(--gnome-icon-go-next-symbolic) !important;
|
||||
width: 16px !important;
|
||||
height: 16px !important;
|
||||
}
|
||||
#identity-popup-mainView .subviewbutton-nav::after,
|
||||
.widget-overflow-list .subviewbutton-nav::after,
|
||||
.PanelUI-subView .subviewbutton-nav::after,
|
||||
menupopup > menu::after {
|
||||
content: "" !important;
|
||||
background: var(--gnome-icon-go-next-symbolic) !important;
|
||||
background-size: contain;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
}
|
||||
.protections-popup-category::after {
|
||||
content: var(--gnome-icon-go-next-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Popovers subview back button */
|
||||
.subviewbutton-back {
|
||||
list-style-image: var(--gnome-icon-go-previous-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Arrow down buttons */
|
||||
.expander-down > .button-box,
|
||||
#sidebar-switcher-arrow,
|
||||
#viewButton .button-menu-dropmarker,
|
||||
.toolbarbutton-combined-buttons-dropmarker {
|
||||
-moz-appearance: none !important;
|
||||
list-style-image: var(--gnome-icon-pan-down-symbolic) !important;
|
||||
}
|
||||
.popup-notification-dropmarker dropmarker {
|
||||
-moz-appearance: none !important;
|
||||
content: var(--gnome-icon-pan-down-symbolic) !important;
|
||||
}
|
||||
#sidebar-switcher-arrow,
|
||||
#viewButton .button-menu-dropmarker {
|
||||
-moz-appearance: none !important;
|
||||
list-style-image: var(--gnome-icon-pan-down-symbolic) !important;
|
||||
width: 16px !important;
|
||||
height: 16px !important;
|
||||
}
|
||||
.menulist-label-box:after,
|
||||
link[href="chrome://global/skin/menulist.css"] ~ dropmarker {
|
||||
content: var(--gnome-icon-pan-down-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Arrow up buttons */
|
||||
.expander-up > .button-box {
|
||||
list-style-image: var(--gnome-icon-pan-up-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Search entries */
|
||||
#urlbar:not(.searchButton) > .urlbar-input-container > #identity-box[pageproxystate="invalid"] > #identity-icon,
|
||||
.searchbar-search-icon,
|
||||
.textbox-search-sign {
|
||||
list-style-image: url(../icons/edit-find-symbolic.svg) !important;
|
||||
}
|
||||
.textbox-search-sign {
|
||||
margin: 3px 0;
|
||||
max-height: 16px !important;
|
||||
width: 16px !important;
|
||||
}
|
||||
|
||||
/* Findbar */
|
||||
.findbar-find-previous {
|
||||
list-style-image: var(--gnome-icon-go-up-symbolic) !important;
|
||||
}
|
||||
.findbar-find-next {
|
||||
list-style-image: var(--gnome-icon-go-down-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Tree views */
|
||||
treechildren::-moz-tree-twisty,
|
||||
.item.client .item-twisty-container {
|
||||
list-style-image: var(--gnome-icon-pan-end-symbolic) !important;
|
||||
width: 16px !important;
|
||||
height: 16px !important;
|
||||
}
|
||||
.item.client .item-twisty-container {
|
||||
background-image: var(--gnome-icon-pan-end-symbolic) !important;
|
||||
}
|
||||
treechildren::-moz-tree-twisty(open) {
|
||||
list-style-image: var(--gnome-icon-pan-down-symbolic) !important;
|
||||
}
|
||||
.item.client.closed .item-twisty-container {
|
||||
background-image: var(--gnome-icon-pan-down-symbolic) !important;
|
||||
}
|
||||
|
||||
treechildren::-moz-tree-image(title, container),
|
||||
treechildren::-moz-tree-image(title, open) {
|
||||
list-style-image: var(--gnome-icon-folder-symbolic) !important;
|
||||
}
|
||||
treechildren::-moz-tree-image(title, query, dayContainer),
|
||||
treechildren::-moz-tree-image(query, OrganizerQuery_history____v) {
|
||||
list-style-image: var(--gnome-icon-preferences-system-time-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Menu checkbox */
|
||||
menuitem[type="checkbox"] {
|
||||
list-style-image: none !important;
|
||||
}
|
||||
menuitem[type="checkbox"][checked="true"] {
|
||||
list-style-image: var(--gnome-icon-select-symbolic) !important;
|
||||
}
|
||||
menuitem[type="checkbox"][disabled="true"] .menu-icon {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* Menu radio */
|
||||
menuitem[type="radio"] {
|
||||
list-style-image: none !important;
|
||||
}
|
||||
menuitem[type="radio"][checked="true"] {
|
||||
list-style-image: var(--gnome-icon-bullet-symbolic) !important;
|
||||
}
|
||||
menuitem[type="radio"] .menu-icon {
|
||||
border-radius: 100%;
|
||||
border: 1px solid var(--gnome-toolbar-icon-fill);
|
||||
}
|
||||
menuitem[type="radio"][disabled="true"] .menu-icon {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* Dropmarker */
|
||||
link[href="chrome://global/skin/dropmarker.css"] + image {
|
||||
list-style-image: var(--gnome-icon-pan-down-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Close button */
|
||||
.close-icon:not(.tab-close-button),
|
||||
.identity-popup-permission-remove-button .button-icon,
|
||||
.permission-popup-permission-remove-button > .button-box > .button-icon {
|
||||
list-style-image: var(--gnome-icon-window-close-symbolic) !important;
|
||||
}
|
||||
#urlbar-search-mode-indicator-close,
|
||||
#searchmode-switcher-close,
|
||||
button.close::before {
|
||||
background-image: var(--gnome-icon-window-close-symbolic) !important;
|
||||
}
|
||||
@media (prefers-color-scheme: light) {
|
||||
.notificationbox-stack notification[type="critical"] .close-icon:not(.tab-close-button):not(:hover) {
|
||||
fill: #fff !important;
|
||||
}
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.notificationbox-stack notification[type="warning"] .close-icon:not(.tab-close-button):not(:hover) image {
|
||||
fill: rgb(46, 52, 54) !important;
|
||||
}
|
||||
}
|
||||
moz-button.close {
|
||||
--message-bar-icon-close-url: var(--gnome-icon-window-close-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Window buttons */
|
||||
:root[customtitlebar] .titlebar-buttonbox .titlebar-close .toolbarbutton-icon {
|
||||
list-style-image: var(--gnome-icon-window-close-symbolic) !important;
|
||||
}
|
||||
:root[customtitlebar] .titlebar-buttonbox .titlebar-max .toolbarbutton-icon {
|
||||
list-style-image: var(--gnome-icon-window-maximize-symbolic) !important;
|
||||
}
|
||||
:root[customtitlebar] .titlebar-buttonbox .titlebar-restore .toolbarbutton-icon {
|
||||
list-style-image: var(--gnome-icon-window-restore-symbolic) !important;
|
||||
}
|
||||
:root[customtitlebar][inFullscreen] .titlebar-buttonbox .titlebar-restore .toolbarbutton-icon {
|
||||
background-image: none !important;
|
||||
list-style-image: var(--gnome-icon-view-restore-symbolic) !important;
|
||||
}
|
||||
:root[customtitlebar] .titlebar-buttonbox .titlebar-min .toolbarbutton-icon {
|
||||
list-style-image: var(--gnome-icon-window-minimize-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Sound icons */
|
||||
.tab-icon-overlay[soundplaying] {
|
||||
list-style-image: var(--gnome-icon-audio-speakers-symbolic) !important;
|
||||
}
|
||||
.tab-icon-overlay[muted] {
|
||||
list-style-image: var(--gnome-icon-audio-volume-muted-symbolic) !important;
|
||||
}
|
||||
.tab-icon-overlay[activemedia-blocked] {
|
||||
list-style-image: var(--gnome-icon-play-large-disabled-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Firefox View */
|
||||
#firefox-view-button {
|
||||
list-style-image: var(--gnome-icon-firefox-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Private browsing button */
|
||||
#privatebrowsing-button {
|
||||
list-style-image: var(--gnome-icon-eye-not-looking-symbolic) !important;
|
||||
}
|
||||
/* Sidebar button */
|
||||
#sidebar-button:-moz-locale-dir(ltr):not([positionend]) .toolbarbutton-icon, #sidebar-button:-moz-locale-dir(rtl)[positionend] .toolbarbutton-icon {
|
||||
list-style-image: var(--gnome-icon-sidebar-show-symbolic) !important;
|
||||
}
|
||||
#sidebar-button .toolbarbutton-icon {
|
||||
list-style-image: var(--gnome-icon-sidebar-show-right-symbolic);
|
||||
}
|
||||
/* Back button */
|
||||
#nav-bar #back-button,
|
||||
#context-back {
|
||||
list-style-image: var(--gnome-icon-go-previous-symbolic) !important;
|
||||
}
|
||||
/* Forward button */
|
||||
#nav-bar #forward-button,
|
||||
#context-forward,
|
||||
#urlbar-go-button,
|
||||
.search-go-button {
|
||||
list-style-image: var(--gnome-icon-go-next-symbolic) !important;
|
||||
}
|
||||
/* Menu button */
|
||||
#PanelUI-menu-button {
|
||||
list-style-image: var(--gnome-icon-open-menu-symbolic) !important;
|
||||
}
|
||||
/* New tab button */
|
||||
#new-tab-button {
|
||||
list-style-image: var(--gnome-icon-tab-new-symbolic) !important;
|
||||
}
|
||||
#tabs-newtab-button,
|
||||
#TabsToolbar #new-tab-button,
|
||||
#vertical-tabs-newtab-button {
|
||||
list-style-image: var(--gnome-icon-list-add-symbolic) !important;
|
||||
}
|
||||
/* Home button */
|
||||
#home-button {
|
||||
list-style-image: var(--gnome-icon-user-home-symbolic) !important;
|
||||
}
|
||||
/* Preferences button */
|
||||
#preferences-button,
|
||||
.search-setting-button > .button-box > .button-icon,
|
||||
.unified-extensions-item-menu-button.subviewbutton,
|
||||
.translations-panel-settings-gear-icon > .toolbarbutton-icon {
|
||||
list-style-image: var(--gnome-icon-settings-symbolic) !important;
|
||||
}
|
||||
/* Tabs sync */
|
||||
#sync-button,
|
||||
#sidebar-box[sidebarcommand="viewTabsSidebar"] > #sidebar-header > #sidebar-switcher-target > #sidebar-icon,
|
||||
.urlbarView-row[source="tabs"] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon,
|
||||
#urlbar-engine-one-off-item-tabs {
|
||||
list-style-image: var(--gnome-icon-tab-symbolic) !important;
|
||||
}
|
||||
/* Fullscreen button */
|
||||
#fullscreen-button,
|
||||
#appMenu-fullscreen-button2 {
|
||||
list-style-image: var(--gnome-icon-view-fullscreen-symbolic) !important;
|
||||
}
|
||||
/* Zoom out button */
|
||||
#zoom-out-button,
|
||||
#appMenu-zoomReduce-button2 {
|
||||
list-style-image: var(--gnome-icon-zoom-out-symbolic) !important;
|
||||
}
|
||||
/* Zoom in button */
|
||||
#zoom-in-button,
|
||||
#appMenu-zoomEnlarge-button2 {
|
||||
list-style-image: var(--gnome-icon-zoom-in-symbolic) !important;
|
||||
}
|
||||
/* Developer button */
|
||||
#developer-button {
|
||||
list-style-image: var(--gnome-icon-build-configure-symbolic) !important;
|
||||
}
|
||||
/* Email link button */
|
||||
#email-link-button {
|
||||
list-style-image: var(--gnome-icon-mail-unread-symbolic) !important;
|
||||
}
|
||||
/* Print button */
|
||||
#print-button {
|
||||
list-style-image: var(--gnome-icon-printer-symbolic) !important;
|
||||
}
|
||||
/* Addons button */
|
||||
#unified-extensions-button,
|
||||
#add-ons-button,
|
||||
#addons-notification-icon,
|
||||
.install-icon {
|
||||
list-style-image: var(--gnome-icon-application-x-addon-symbolic) !important;
|
||||
}
|
||||
/* Find button */
|
||||
#find-button {
|
||||
list-style-image: var(--gnome-icon-edit-find-symbolic) !important;
|
||||
}
|
||||
/* New window button */
|
||||
#new-window-button {
|
||||
list-style-image: var(--gnome-icon-window-new-symbolic) !important;
|
||||
}
|
||||
/* Bookmarks menu button */
|
||||
#bookmarks-menu-button,
|
||||
#sidebar-box[sidebarcommand="viewBookmarksSidebar"] > #sidebar-header > #sidebar-switcher-target > #sidebar-icon,
|
||||
.urlbarView-row[source="bookmarks"] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon,
|
||||
#urlbar-engine-one-off-item-bookmarks {
|
||||
list-style-image: var(--gnome-icon-starred-symbolic) !important;
|
||||
}
|
||||
#context-bookmarkpage[starred="true"],
|
||||
#star-button[starred] {
|
||||
list-style-image: var(--gnome-icon-starred-symbolic) !important;
|
||||
}
|
||||
#context-bookmarkpage,
|
||||
#star-button {
|
||||
list-style-image: var(--gnome-icon-non-starred-symbolic) !important;
|
||||
}
|
||||
#star-button[starred] {
|
||||
fill: var(--gnome-toolbar-star-button) !important;
|
||||
}
|
||||
/* Privacy */
|
||||
#print-button {
|
||||
list-style-image: var(--gnome-icon-printer-symbolic) !important;
|
||||
}
|
||||
/* Picture-in-picture */
|
||||
#picture-in-picture-button > .urlbar-icon {
|
||||
list-style-image: var(--gnome-icon-pip-in-symbolic) !important;
|
||||
}
|
||||
#picture-in-picture-button[pipactive] > .urlbar-icon {
|
||||
list-style-image: var(--gnome-icon-pip-out-symbolic) !important;
|
||||
}
|
||||
/* Read mode */
|
||||
#reader-mode-button > .urlbar-icon {
|
||||
list-style-image: var(--gnome-icon-newspaper-symbolic) !important;
|
||||
}
|
||||
#reader-mode-button[readeractive] > .urlbar-icon {
|
||||
fill: var(--gnome-accent) !important;
|
||||
}
|
||||
/* Blocked media */
|
||||
.autoplay-media-icon.blocked-permission-icon {
|
||||
list-style-image: var(--gnome-icon-play-large-disabled-symbolic) !important;
|
||||
}
|
||||
/* DRM */
|
||||
.drm-icon {
|
||||
list-style-image: var(--gnome-icon-chain-link-symbolic) !important;
|
||||
}
|
||||
/* History button */
|
||||
#history-panelmenu,
|
||||
#sidebar-box[sidebarcommand="viewHistorySidebar"] > #sidebar-header > #sidebar-switcher-target > #sidebar-icon,
|
||||
.urlbarView-row[source="history"] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-favicon,
|
||||
#urlbar-engine-one-off-item-history {
|
||||
list-style-image: var(--gnome-icon-preferences-system-time-symbolic) !important;
|
||||
}
|
||||
/* Forget history */
|
||||
#panic-button {
|
||||
list-style-image: var(--gnome-icon-history-undo-symbolic) !important;
|
||||
}
|
||||
/* All tabs button */
|
||||
#alltabs-button {
|
||||
list-style-image: var(--gnome-icon-pan-down-symbolic) !important;
|
||||
}
|
||||
/* Cut button */
|
||||
#cut-button,
|
||||
#appMenu-cut-button {
|
||||
list-style-image: var(--gnome-icon-edit-cut-symbolic) !important;
|
||||
}
|
||||
/* Copy button */
|
||||
#copy-button,
|
||||
#appMenu-copy-button {
|
||||
list-style-image: var(--gnome-icon-edit-copy-symbolic) !important;
|
||||
}
|
||||
/* Paste button */
|
||||
#paste-button,
|
||||
#appMenu-paste-button {
|
||||
list-style-image: var(--gnome-icon-edit-paste-symbolic) !important;
|
||||
}
|
||||
/* Overflow button */
|
||||
#nav-bar-overflow-button {
|
||||
list-style-image: var(--gnome-icon-pan-down-symbolic) !important;
|
||||
}
|
||||
/* Reload */
|
||||
#reload-button,
|
||||
.downloadIconRetry > .button-box > .button-icon,
|
||||
#context-reload {
|
||||
list-style-image: var(--gnome-icon-view-refresh-symbolic) !important;
|
||||
}
|
||||
/* Stop */
|
||||
#stop-button,
|
||||
.downloadIconCancel > .button-box > .button-icon,
|
||||
#context-stop {
|
||||
list-style-image: var(--gnome-icon-process-stop-symbolic) !important;
|
||||
}
|
||||
/* Downlaod */
|
||||
#downloads-button,
|
||||
#downloads-indicator-icon {
|
||||
list-style-image: var(--gnome-icon-folder-download-symbolic) !important;
|
||||
}
|
||||
/* Info */
|
||||
.panel-info-button:not(.translations-panel-settings-gear-icon) > image,
|
||||
#identity-icon {
|
||||
list-style-image: var(--gnome-icon-info-outline-symbolic) !important;
|
||||
}
|
||||
.tabbrowser-tab[image="chrome://global/skin/icons/info.svg"]:not([busy]):not([progress]) .tab-icon-stack::before {
|
||||
content: "";
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
background-image: var(--gnome-icon-info-outline-symbolic) !important;
|
||||
}
|
||||
/* Password */
|
||||
#password-notification-icon {
|
||||
list-style-image: var(--gnome-icon-key-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Url Bar icons */
|
||||
#urlbar:not(.searchButton) > .urlbar-input-container > #identity-box[pageproxystate="invalid"] #identity-icon {
|
||||
list-style-image: var(--gnome-icon-edit-find-symbolic) !important;
|
||||
}
|
||||
.urlbar-input-container[pageproxystate="valid"] > #tracking-protection-icon-container > #tracking-protection-icon-box > #tracking-protection-icon {
|
||||
list-style-image: var(--gnome-icon-security-high-symbolic) !important;
|
||||
}
|
||||
.urlbar-input-container[pageproxystate="valid"] > #tracking-protection-icon-container > #tracking-protection-icon-box[hasException] > #tracking-protection-icon {
|
||||
list-style-image: var(--gnome-icon-security-low-symbolic) !important;
|
||||
}
|
||||
.urlbar-input-container[pageproxystate="valid"] > #tracking-protection-icon-container > #tracking-protection-icon-box:not([hasException])[active] > #tracking-protection-icon {
|
||||
list-style-image: var(--gnome-icon-security-high-symbolic) !important;
|
||||
}
|
||||
#identity-box[pageproxystate="valid"].verifiedDomain #identity-icon,
|
||||
#identity-box[pageproxystate="valid"].mixedActiveBlocked #identity-icon {
|
||||
list-style-image: var(--gnome-icon-channel-secure-symbolic) !important;
|
||||
}
|
||||
#identity-box[pageproxystate="valid"].notSecure #identity-icon,
|
||||
#identity-box[pageproxystate="valid"].mixedActiveContent #identity-icon,
|
||||
#identity-box[pageproxystate="valid"].httpsOnlyErrorPage #identity-icon,
|
||||
#identity-box[pageproxystate="valid"].certUserOverridden #identity-icon {
|
||||
list-style-image: var(--gnome-icon-channel-insecure-symbolic) !important;
|
||||
}
|
||||
#identity-popup[connection^="secure"] .identity-popup-security-connection {
|
||||
list-style-image: var(--gnome-icon-channel-secure-symbolic) !important;
|
||||
}
|
||||
#identity-popup[connection="secure-cert-user-overridden"] .identity-popup-security-connection,
|
||||
.identity-popup-security-connection {
|
||||
list-style-image: var(--gnome-icon-channel-insecure-symbolic) !important;
|
||||
}
|
||||
#permissions-granted-icon {
|
||||
list-style-image: var(--gnome-icon-general-properties-symbolic) !important;
|
||||
}
|
||||
.popup-notification-icon[popupid="web-notifications"], .desktop-notification-icon {
|
||||
list-style-image: var(--gnome-icon-chat-symbolic) !important;
|
||||
}
|
||||
#reader-mode-button {
|
||||
list-style-image: var(--gnome-icon-newspaper-symbolic) !important;
|
||||
}
|
||||
.urlbar-icon {
|
||||
margin: 2px 0 !important;
|
||||
}
|
||||
|
||||
/* Fix for extensions icons */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.webextension-browser-action {
|
||||
list-style-image: var(--webextension-menupanel-image-light, inherit) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Folder icon */
|
||||
.bookmark-item[container],
|
||||
.downloadIconShow > .button-box > .button-icon {
|
||||
list-style-image: var(--gnome-icon-folder-symbolic) !important;
|
||||
}
|
||||
|
||||
/* Text clear */
|
||||
.textbox-search-clear {
|
||||
content: var(--gnome-icon-edit-clear-symbolic) !important;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
/* Lists */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* TODO: create list color vars */
|
||||
/* List container */
|
||||
#permission-popup-permission-list,
|
||||
richlistbox#items {
|
||||
--in-content-item-selected: var(--gnome-accent-bg) !important;
|
||||
--in-content-item-selected-text: #fff !important;
|
||||
background: var(--gnome-card-background) !important;
|
||||
border: 0 !important;
|
||||
border-radius: var(--gnome-card-radius) !important;
|
||||
padding: 0 !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
richlistbox#items {
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, .03),
|
||||
0 1px 3px 1px rgba(0, 0, 0, .07),
|
||||
0 2px 6px 2px rgba(0, 0, 0, .03);
|
||||
}
|
||||
|
||||
/* List item */
|
||||
.permission-popup-permission-item,
|
||||
richlistbox#items richlistitem {
|
||||
padding: var(--gnome-toolbar-padding) !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
.permission-popup-permission-list-anchor {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.permission-popup-permission-list-anchor:not(:has(.permission-popup-permission-item)) {
|
||||
visibility: collapse;
|
||||
}
|
||||
richlistbox#items richlistitem:not(:last-child) {
|
||||
border-bottom: 1px solid var(--gnome-card-shade-color);
|
||||
}
|
||||
.permission-popup-permission-list-anchor:not(#permission-popup-permission-list-default-anchor):has(.permission-popup-permission-item) {
|
||||
border-top: 1px solid var(--gnome-card-shade-color);
|
||||
}
|
||||
#permission-popup-permission-list-default-anchor:empty + .permission-popup-permission-list-anchor {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
/* Fix list buttons on selected state */
|
||||
@media (prefers-color-scheme: light) {
|
||||
richlistbox#items richlistitem[selected=true] button {
|
||||
filter: invert() brightness(200%) !important;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,343 @@
|
|||
/* Popups contents syles */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Main menu fxa */
|
||||
#appMenu-fxa-status[fxastatus="signedin"] > #appMenu-fxa-label {
|
||||
padding-left: 22px !important;
|
||||
margin-inline-start: -22px !important;
|
||||
}
|
||||
#appMenu-fxa-status[fxastatus="signedin"] > #appMenu-fxa-avatar {
|
||||
margin-inline-start: 5px !important;
|
||||
}
|
||||
#appMenu-fxa-status2[fxastatus] > #appMenu-fxa-label2 > vbox > #appMenu-header-description, #appMenu-fxa-text {
|
||||
font-weight: 400 !important;
|
||||
}
|
||||
|
||||
/* Style main context menu & buttons */
|
||||
#context-navigation {
|
||||
padding: 0;
|
||||
}
|
||||
#context-navigation > menuitem > .menu-iconic-left {
|
||||
margin: auto !important;
|
||||
}
|
||||
#context-navigation menuitem {
|
||||
--toolbarbutton-active-background: transparent !important;
|
||||
--toolbarbutton-hover-background: transparent !important;
|
||||
}
|
||||
|
||||
/* Main menu */
|
||||
#appMenu-popup .panel-banner-item:after {
|
||||
-moz-box-ordinal-group: 0;
|
||||
margin: 0 8px 0 0 !important;
|
||||
}
|
||||
#appMenu-popup .toolbaritem-combined-buttons {
|
||||
margin-inline-end: 0 !important;
|
||||
}
|
||||
#appMenu-popup .toolbaritem-combined-buttons .before-label {
|
||||
width: 32px !important;
|
||||
}
|
||||
.subviewbutton#appMenu-zoom-controls2 {
|
||||
padding-right: 0 !important;
|
||||
padding-top: 6px !important;
|
||||
}
|
||||
|
||||
/* User sync account remove avatar */
|
||||
#fxa-menu-avatar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Add search engine button remove icon */
|
||||
#pageAction-panel-addSearchEngine .toolbarbutton-badge-stack {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* All tabs popover */
|
||||
.all-tabs-item[selected] {
|
||||
border-left: 3px solid var(--gnome-tabbar-tab-active-border-bottom-color);
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.all-tabs-item > .all-tabs-secondary-button label {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
/* Add bookmark */
|
||||
#editBookmarkPanel {
|
||||
#editBookmarkPanelContent {
|
||||
padding: 0 !important;
|
||||
|
||||
label {
|
||||
margin-top: calc(var(--gnome-toolbar-spacing) * 2) !important;
|
||||
margin-bottom: var(--gnome-toolbar-spacing) !important;
|
||||
}
|
||||
}
|
||||
|
||||
#editBookmarkPanelBottomContent {
|
||||
margin-block: calc(var(--gnome-toolbar-spacing) * 2) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Downloads popover */
|
||||
#downloadsPanel-mainView .download-state {
|
||||
padding: 12px !important;
|
||||
border: 0 !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 64px !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
#downloadsPanel-mainView .downloadMainArea {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
}
|
||||
#downloadsPanel-mainView .downloadMainArea:hover {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
#downloadsPanel-mainView .downloadTypeIcon {
|
||||
margin: 0 !important;
|
||||
margin-right: 6px !important;
|
||||
}
|
||||
|
||||
#downloadsPanel-mainView .downloadContainer {
|
||||
margin-inline-end: 0 !important;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
#downloadsPanel-mainView .download-state .downloadButton .button-box {
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
#downloadsPanel-mainView .download-state toolbarseparator {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Customization overflow menu position */
|
||||
#customization-panel-container {
|
||||
margin-top: 10px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Confirmation Hint */
|
||||
#confirmation-hint-checkmark-animation-container {
|
||||
margin: 12px 6px 12px 12px !important;
|
||||
}
|
||||
#confirmation-hint-message-container {
|
||||
margin: 12px 12px 12px 0 !important;
|
||||
}
|
||||
|
||||
/* URLbar popups */
|
||||
#identity-popup-mainView,
|
||||
#permission-popup-mainView,
|
||||
#protections-popup-mainView,
|
||||
#identity-popup-mainView-panel-header {
|
||||
max-width: calc(var(--popup-width) + (var(--gnome-menu-padding) * 2)) !important;
|
||||
min-width: calc(var(--popup-width) + (var(--gnome-menu-padding) * 2)) !important;
|
||||
}
|
||||
|
||||
/* Identity popup */
|
||||
#identity-popup-security,
|
||||
.identity-popup-section,
|
||||
#identity-popup-security-expander .button-box,
|
||||
.identity-popup-security-content {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
.identity-popup-security-content {
|
||||
padding-inline-end: 0 !important;
|
||||
padding-inline-start: 0 !important;
|
||||
}
|
||||
.identity-popup-security-content {
|
||||
background-position: 0em 0.8em !important;
|
||||
background-size: 24px auto;
|
||||
}
|
||||
.identity-popup-security-content .identity-popup-headline {
|
||||
margin-left: 1.4em !important;
|
||||
}
|
||||
#identity-popup-security-button {
|
||||
padding: 3px 0 !important;
|
||||
}
|
||||
.identity-popup-security-connection.identity-button:not(#hack) {
|
||||
width: calc(var(--popup-width) - 30px) !important;
|
||||
}
|
||||
|
||||
/* Permission popup */
|
||||
#permission-popup-permissions-content {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.permission-popup-permission-item:first-child, #permission-popup-storage-access-permission-list-header {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.permission-popup-permission-remove-button {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
.permission-popup-permission-state-label {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#permission-popup-permission-list-default-anchor:empty {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.permission-popup-permission-list-anchor[anchorfor="3rdPartyStorage"] {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.permission-popup-permission-list-anchor[anchorfor="3rdPartyStorage"] > vbox:only-child {
|
||||
display: block !important;
|
||||
height: 0 !important;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
margin: 0 !important;
|
||||
margin-bottom: -1px !important;
|
||||
}
|
||||
.permission-popup-permission-item-3rdPartyStorage {
|
||||
margin-right: 6px;
|
||||
margin-bottom: 6px !important;
|
||||
}
|
||||
#permission-popup-storage-access-permission-list-header {
|
||||
padding: 6px !important;
|
||||
}
|
||||
|
||||
/* Protections popup */
|
||||
.protections-popup-section,
|
||||
#protections-popup-not-blocking-section-header {
|
||||
border: 0 !important;
|
||||
}
|
||||
#protections-popup-mainView-panel-header-section {
|
||||
background: transparent !important;
|
||||
}
|
||||
#protections-popup-mainView toolbarseparator {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#protections-popup-mainView-panel-header {
|
||||
color: var(--gnome-window-color) !important;
|
||||
}
|
||||
#protections-popup[hasException] #protections-popup-mainView-panel-header {
|
||||
background: none !important;
|
||||
}
|
||||
#protections-popup-main-header-label {
|
||||
height: auto !important;
|
||||
margin-inline-start: 6px !important;
|
||||
text-align: left !important;
|
||||
}
|
||||
#protections-popup-mainView-panel-header-span {
|
||||
margin: 0 !important;
|
||||
margin-inline-start: 0 !important
|
||||
}
|
||||
#protections-popup[toast] #protections-popup-mainView-panel-header {
|
||||
border-bottom-width: 1px !important;
|
||||
border-radius: 5px !important;
|
||||
padding: 0px !important;
|
||||
}
|
||||
#protections-popup-info-button {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
#protections-popup-message {
|
||||
background-position: center 12px !important;
|
||||
background-color: var(--gnome-entry-background);
|
||||
border: 0 !important;
|
||||
border-radius: 12px;
|
||||
color: var(--gnome-window-color) !important;
|
||||
height: 100% !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
#protections-popup-message .text-link,
|
||||
#cfr-protections-panel-link-text {
|
||||
color: var(--gnome-window-color) !important;
|
||||
}
|
||||
.whatsNew-message-body {
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
#protections-popup-tp-switch-section {
|
||||
background: var(--gnome-menu-background);
|
||||
border: 1px solid var(--gnome-button-border-color) !important;
|
||||
border-radius: 9px;
|
||||
padding: 0 0 24px 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
#protections-popup-tp-switch-section-header {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
#protections-popup[hasException] #protections-popup-tp-switch-section {
|
||||
background: var(--gnome-menu-background) !important;
|
||||
}
|
||||
.protections-popup-tp-switch-label-box label {
|
||||
margin-right: 12px !important;
|
||||
font-weight: normal !important;
|
||||
}
|
||||
|
||||
#protections-popup-no-trackers-found-description {
|
||||
margin: 12px 8px 0 !important;
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
#protections-popup-blocking-section-header,
|
||||
#protections-popup-not-found-section-header,
|
||||
#protections-popup-not-blocking-section-header{
|
||||
padding: 0px 5px !important;
|
||||
margin-top: 20px !important;
|
||||
height: auto !important;
|
||||
}
|
||||
|
||||
#protections-popup-category-list {
|
||||
margin: 0 !important;
|
||||
}
|
||||
.protections-popup-category.notFound .protections-popup-category-label {
|
||||
width: calc(var(--popup-width) - 70px) !important;
|
||||
}
|
||||
.protections-popup-category-label {
|
||||
margin-inline-start: 6px !important;
|
||||
}
|
||||
.protections-popup-category-state-label {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
#protections-popup-footer {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 12px;
|
||||
}
|
||||
#protections-popup-show-report-stack,
|
||||
#protections-popup-settings-button {
|
||||
width: 100% !important;
|
||||
}
|
||||
#protections-popup-show-report-button {
|
||||
height: 32px !important;
|
||||
}
|
||||
#protections-popup-footer-protection-type-label {
|
||||
margin-left: 6px !important;
|
||||
}
|
||||
.protections-popup-description {
|
||||
border-bottom: 0 !important;
|
||||
}
|
||||
.protections-popup-description > description {
|
||||
margin: 8px !important;
|
||||
}
|
||||
|
||||
/* Feature recommendation notification, fix width */
|
||||
#contextual-feature-recommendation-notification {
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
/* Extensions sometimes assume a white background */
|
||||
.webextension-popup-browser {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
/* Translate */
|
||||
#translations-panel-translate:not(:only-child, #hack) {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
#translations-panel-lang-selection > label {
|
||||
margin-top: var(--gnome-menu-padding) !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,310 @@
|
|||
/* Popup menus and context menus */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Style menus */
|
||||
menupopup {
|
||||
appearance: none !important;
|
||||
color: var(--gnome-window-color) !important;
|
||||
padding: var(--gnome-menu-padding) !important;
|
||||
}
|
||||
|
||||
menucaption {
|
||||
color: var(--gnome-window-color) !important;
|
||||
}
|
||||
|
||||
menu menupopup {
|
||||
margin: -16px 0 0 0 !important;
|
||||
}
|
||||
|
||||
menulist {
|
||||
padding: 0px !important;
|
||||
}
|
||||
|
||||
.menupopup-arrowscrollbox {
|
||||
appearance: none !important;
|
||||
background: var(--gnome-menu-background) !important;
|
||||
border: 0 !important;
|
||||
border-radius: var(--gnome-popover-radius) !important;
|
||||
box-shadow: var(--gnome-menu-shadow) !important;
|
||||
padding: var(--gnome-menu-padding) !important;
|
||||
min-height: 45px !important;
|
||||
}
|
||||
@media not -moz-pref("gnomeTheme.noThemedIcons") {
|
||||
menuitem:is([type="checkbox"], [checked="true"]) .menu-iconic-icon,
|
||||
menuitem[type="radio"] .menu-iconic-icon {
|
||||
appearance: none !important;
|
||||
}
|
||||
}
|
||||
menuitem {
|
||||
padding-inline-end: 18px !important;
|
||||
}
|
||||
menu, menuitem {
|
||||
margin-inline: 0 !important;
|
||||
&:where([_moz-menuactive]:not([disabled="true"])) {
|
||||
color: currentColor;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
menuitem:not([acceltext]) .menu-accel-container {
|
||||
visibility: collapse !important;
|
||||
}
|
||||
menuitem[type="checkbox"] image, menuitem[type="radio"] image {
|
||||
appearance: none !important;
|
||||
visibility: visible !important;
|
||||
}
|
||||
menuitem[disabled="true"]:hover, menupopup menu[disabled="true"]:hover {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.menu-iconic-icon {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
/* Adjust popovers position */
|
||||
panel[type=arrow] {
|
||||
margin-top: var(--gnome-menu-padding) !important;
|
||||
}
|
||||
|
||||
/* Style popovers */
|
||||
panel:not([remote]) {
|
||||
--arrowpanel-background: var(--gnome-menu-background) !important;
|
||||
--arrowpanel-color: var(--gnome-menu-color) !important;
|
||||
--panel-item-hover-bgcolor: var(--gnome-selected-background) !important;
|
||||
}
|
||||
panel {
|
||||
--arrowpanel-padding: 0 !important;
|
||||
--arrowpanel-border-color: var(--gnome-menu-border-color) !important;
|
||||
--arrowpanel-border-radius: var(--gnome-popover-radius) !important;
|
||||
--panel-separator-color: var(--gnome-menu-color) !important;
|
||||
}
|
||||
|
||||
/* Padding rules */
|
||||
#sidebarMenu-popup {
|
||||
--arrowpanel-padding: var(--gnome-menu-padding) !important;
|
||||
}
|
||||
#downloadsPanel-blockedSubview,
|
||||
#downloadsPanel-mainView,
|
||||
#select-translations-panel-main-content {
|
||||
padding: var(--gnome-menu-padding) !important;
|
||||
}
|
||||
.panel-header, .panel-footer,
|
||||
.panel-subview-body,
|
||||
#protections-popup-mainView-panel-header-section,
|
||||
.permission-popup-section,
|
||||
.popup-notification-header-container,
|
||||
.popup-notification-body-container,
|
||||
.popup-notification-footer-container,
|
||||
.translations-panel-content {
|
||||
padding: 0 var(--gnome-menu-padding) var(--gnome-menu-padding) !important;
|
||||
}
|
||||
:is(
|
||||
.panel-header, .panel-footer,
|
||||
.panel-subview-body,
|
||||
.protections-popup-section,
|
||||
#protections-popup-mainView-panel-header-section,
|
||||
.permission-popup-section,
|
||||
.identity-popup-section,
|
||||
.popup-notification-header-container,
|
||||
.popup-notification-body-container,
|
||||
.popup-notification-footer-container
|
||||
):first-child:not(:empty) {
|
||||
padding-top: var(--gnome-menu-padding) !important;
|
||||
}
|
||||
#protections-popup-footer,
|
||||
#identity-popup-clear-sitedata-footer {
|
||||
padding: 0 var(--gnome-menu-padding) !important;
|
||||
}
|
||||
.panel-subview-body > .panel-subview-body {
|
||||
padding: 0 !important;
|
||||
}
|
||||
/* Padding with margign */
|
||||
.subviewbutton.panel-subview-footer-button:not(#downloadsHistory) {
|
||||
margin: var(--gnome-menu-padding) !important;
|
||||
}
|
||||
.subviewbutton.panel-subview-footer-button:not(:only-child, #downloadsHistory) {
|
||||
margin: 0 var(--gnome-menu-padding) !important;
|
||||
}
|
||||
.subviewbutton.panel-subview-footer-button:not(:only-child, #downloadsHistory, #translations-panel-translate):last-child {
|
||||
margin-bottom: var(--gnome-menu-padding) !important;
|
||||
}
|
||||
|
||||
/* No menu */
|
||||
#notification-popup,
|
||||
#permission-popup,
|
||||
#editBookmarkPanel,
|
||||
#downloadsPanel,
|
||||
#translations-panel {
|
||||
--gnome-menu-padding: 12px !important;
|
||||
}
|
||||
|
||||
/* Panel arrow */
|
||||
.panel-arrowcontent {
|
||||
background: var(--arrowpanel-background) !important;
|
||||
border: 1px solid var(--gnome-menu-border-color) !important;
|
||||
border-radius: 12px !important;
|
||||
color: var(--gnome-window-color) !important;
|
||||
}
|
||||
.panel-arrow {
|
||||
fill: var(--arrowpanel-background) !important;
|
||||
stroke: var(--gnome-menu-border-color) !important;
|
||||
display: -moz-inline-box !important;
|
||||
}
|
||||
|
||||
/* Panel header */
|
||||
.panel-header {
|
||||
position: relative !important;
|
||||
}
|
||||
|
||||
/* Panel footer */
|
||||
.panel-footer {
|
||||
background-color: transparent !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
.panel-subview-body .panel-footer {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.panel-footer.panel-footer-menulike {
|
||||
border-top: 0 !important;
|
||||
margin-top: 8px !important;
|
||||
}
|
||||
.panel-footer toolbarseparator {
|
||||
display: none !important;
|
||||
}
|
||||
.proton-zap {
|
||||
border-image: unset !important;
|
||||
}
|
||||
.panel-subview-footer {
|
||||
margin-top: 10px !important;
|
||||
}
|
||||
|
||||
/* Remove unwanted separators */
|
||||
.panel-header + toolbarseparator,
|
||||
#identity-popup-mainView-panel-header + toolbarseparator,
|
||||
#permission-popup-mainView-panel-header + toolbarseparator,
|
||||
#protections-popup-mainView-panel-header-section + toolbarseparator {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Menu buttons */
|
||||
menuitem, menupopup menu,
|
||||
panelview .subviewbutton:not(#appMenu-fxa-label2, .unified-extensions-item-menu-button),
|
||||
panelview .toolbarbutton-1,
|
||||
panelview .unified-extensions-item-action-button,
|
||||
.protections-popup-footer-button,
|
||||
.protections-popup-category,
|
||||
.identity-popup-content-blocking-category,
|
||||
#downloadsPanel-mainView .download-state {
|
||||
-moz-appearance: none !important;
|
||||
border-radius: var(--gnome-button-radius) !important;
|
||||
color: var(--gnome-window-color) !important;
|
||||
font: menu !important;
|
||||
padding: 4px 12px !important;
|
||||
min-height: 32px !important;
|
||||
|
||||
&:hover, &[_moz-menuactive], &:focus, &:focus-within {
|
||||
background: var(--gnome-selected-color) !important;
|
||||
outline: 0 !important;
|
||||
}
|
||||
}
|
||||
.subviewbutton,
|
||||
.protections-popup-footer-button,
|
||||
.protections-popup-category,
|
||||
.identity-popup-content-blocking-category,
|
||||
.openintabs-menuitem,
|
||||
.widget-overflow-list .toolbarbutton-1,
|
||||
panelview .unified-extensions-item {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.subviewbutton[shortcut]:after {
|
||||
opacity: 0.5 !important;
|
||||
color: var(--gnome-menu-color) !important;
|
||||
}
|
||||
|
||||
.bookmark-item .menu-right {
|
||||
fill-opacity: 1 !important;
|
||||
}
|
||||
|
||||
/* Menu buttons disabled */
|
||||
menuitem[disabled="true"], menupopup menu[disabled="true"],
|
||||
.subviewbutton[disabled="true"], .toolbarbutton-1[disabled="true"],
|
||||
.protections-popup-category[disabled="true"],
|
||||
.identity-popup-content-blocking-category[disabled="true"] {
|
||||
opacity: .5 !important;
|
||||
}
|
||||
menuitem[disabled="true"][_moz-menuactive], menupopup menu[disabled="true"][_moz-menuactive] {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
/* Menu buttons fix */
|
||||
#appMenu-fxa-label2 {
|
||||
padding: 0 !important;
|
||||
}
|
||||
#appMenu-fxa-label2:hover {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
/* Menu buttons back */
|
||||
.subviewbutton-back {
|
||||
opacity: 1 !important;
|
||||
width: 100%;
|
||||
-moz-box-align: center !important;
|
||||
-moz-box-pack: start !important;
|
||||
}
|
||||
.subviewbutton-back + h1 {
|
||||
font-weight: normal !important;
|
||||
left: 0 !important;
|
||||
padding: 0 !important;
|
||||
pointer-events: none;
|
||||
position: absolute !important;
|
||||
top: 12px !important;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Menu headers */
|
||||
.subview-subheader {
|
||||
font: menu !important;
|
||||
font-weight: bold !important;
|
||||
padding-block: 0 !important;
|
||||
margin: 0 4px !important;
|
||||
}
|
||||
|
||||
/* Style popover separators */
|
||||
panel toolbarseparator, menuseparator {
|
||||
appearance: none !important;
|
||||
padding: 0 !important;
|
||||
|
||||
&:not([orient="vertical"]) {
|
||||
border-top: 1px solid var(--gnome-menu-separator-color) !important;
|
||||
margin: 6px 0 !important;
|
||||
|
||||
&::before {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
&[orient="vertical"] {
|
||||
margin: 0 6px !important;
|
||||
}
|
||||
}
|
||||
|
||||
#PlacesToolbar menupopup[placespopup="true"] menuseparator {
|
||||
border-top: 1px solid var(--gnome-menu-separator-color) !important;
|
||||
padding: 0 !important;
|
||||
margin: 6px 0 !important;
|
||||
}
|
||||
#PlacesToolbar menupopup[placespopup="true"] menuseparator::before {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
.panel-subview-body + toolbarseparator:not([orient="vertical"]) {
|
||||
margin: 0 0 6px !important;
|
||||
}
|
||||
panelview > toolbarseparator:not([orient="vertical"]),
|
||||
#identity-popup-more-info-footer toolbarseparator:not([orient="vertical"]){
|
||||
margin: 6px !important;
|
||||
}
|
||||
#identity-popup-clear-sitedata-footer toolbarseparator:not([orient="vertical"]) {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
/* Removes a white flash after you open or close a tab. Affects all variants,
|
||||
* but it's more visible on dark variants. */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Overrides: Change the flash color */
|
||||
#tabbrowser-tabpanels,
|
||||
#tabbrowser-tabpanels[pendingpaint],
|
||||
browser {
|
||||
background-color: var(--gnome-window-background) !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,131 @@
|
|||
/* Sidebar */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Main sidebar */
|
||||
#sidebar-main {
|
||||
--button-size-icon: var(--gnome-button-size) !important;
|
||||
background-color: var(--gnome-sidebar-background) !important;
|
||||
}
|
||||
|
||||
link[href="chrome://browser/content/sidebar/sidebar-main.css"] + .wrapper {
|
||||
.tools-and-extensions {
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
&[orientation="horizontal"] {
|
||||
padding: var(--gnome-toolbar-padding) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.actions-list {
|
||||
& > moz-button:not(.tools-overflow) {
|
||||
--button-outer-padding-inline: var(--gnome-toolbar-padding) !important;
|
||||
--button-outer-padding-block: calc(var(--gnome-toolbar-spacing) / 2) !important;
|
||||
--toolbarbutton-active-background: var(--gnome-selected-color) !important;
|
||||
|
||||
&:last-of-type {
|
||||
--button-outer-padding-block-end: var(--gnome-toolbar-padding) !important;
|
||||
}
|
||||
&:first-of-type {
|
||||
--button-outer-padding-block-start: var(--gnome-toolbar-padding) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Sidebar content */
|
||||
#sidebar-box {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
#sidebar-box:-moz-window-inactive label, #sidebar-box:-moz-window-inactive image,
|
||||
.sidebar-panel:-moz-window-inactive label, .sidebar-panel:-moz-window-inactive image,
|
||||
.tools-and-extensions:-moz-window-inactive,
|
||||
.sidebar-placesTreechildren:-moz-window-inactive {
|
||||
opacity: 0.7 !important;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
background-color: var(--gnome-secondary-sidebar-background) !important;
|
||||
border: 0 !important;
|
||||
border-radius: 0 !important;;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
#sidebar-search-container {
|
||||
padding: var(--gnome-toolbar-padding) !important;
|
||||
}
|
||||
|
||||
/* Separator */
|
||||
#sidebar-splitter,
|
||||
#sidebar-launcher-splitter {
|
||||
background: var(--gnome-toolbar-background) !important;
|
||||
border: 0 !important;
|
||||
border-right: 1px solid var(--gnome-border-color) !important;
|
||||
border-color: var(--gnome-toolbar-border-color) !important;
|
||||
margin: 0 !important;
|
||||
width: 0 !important;
|
||||
}
|
||||
|
||||
#sidebar-tools-and-extensions-splitter {
|
||||
background: transparent !important;
|
||||
margin-block: 0 !important;
|
||||
}
|
||||
|
||||
/* Browser content */
|
||||
#tabbrowser-tabbox {
|
||||
--chrome-content-separator-color: var(--gnome-toolbar-border-color);
|
||||
box-shadow: none !important;
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
/* Settings lists */
|
||||
/* TODO: Move to lists.css */
|
||||
.customize-group .extensions,
|
||||
link[href="chrome://global/content/elements/moz-fieldset.css"] ~ fieldset #inputs {
|
||||
background: var(--gnome-card-background) !important;
|
||||
border: 0 !important;
|
||||
border-radius: var(--gnome-card-radius) !important;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, .03), 0 1px 3px 1px rgba(0, 0, 0, .07), 0 2px 6px 2px rgba(0, 0, 0, .03);
|
||||
margin-top: 12px !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
moz-checkbox, moz-radio, .customize-group .extension-item {
|
||||
display: flex !important;
|
||||
padding: 0 !important;
|
||||
|
||||
&:not(:last-of-type) {
|
||||
border-bottom: 1px solid var(--gnome-card-shade-color) !important;
|
||||
}
|
||||
&[slot="nested"]:first-of-type {
|
||||
border-top: 1px solid var(--gnome-card-shade-color) !important;
|
||||
}
|
||||
}
|
||||
moz-checkbox, moz-radio {
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
margin-block-start: 0 !important;
|
||||
}
|
||||
.customize-group .extension-item {
|
||||
align-items: center;
|
||||
min-height: 50px !important;
|
||||
padding: 0 12px !important;
|
||||
}
|
||||
|
||||
link[href="chrome://global/content/elements/moz-input-common.css"]:has(~ .nested) {
|
||||
& ~ .label-wrapper {
|
||||
margin-inline: 12px !important;
|
||||
& > label {
|
||||
align-items: center;
|
||||
display: flex !important;
|
||||
gap: var(--gnome-toolbar-spacing);
|
||||
min-height: 50px !important;
|
||||
}
|
||||
}
|
||||
|
||||
& ~ .nested {
|
||||
gap: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,892 @@
|
|||
/* Tabs bar */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
/* Override vars */
|
||||
:root {
|
||||
--space-above-tabbar: 0 !important;
|
||||
|
||||
--tab-min-height: var(--gnome-button-size) !important;
|
||||
--tab-border-radius: var(--gnome-button-radius) !important;
|
||||
--tab-hover-background-color: var(--gnome-hover-color) !important;
|
||||
--tab-selected-bgcolor: var(--gnome-selected-color) !important;
|
||||
--tab-pinned-container-margin-inline-expanded: calc(var(--gnome-toolbar-padding) / 2) !important;
|
||||
--tabstrip-inner-border: 1px solid var(--gnome-border-color) !important;
|
||||
|
||||
--gnome-tabbar-tab-close-overlay-bg: var(--gnome-tabbar-tab-hover-background);
|
||||
|
||||
@media not -moz-pref("sidebar.verticalTabs") {
|
||||
/* We need the hardcoded tab colors in horizontal tabs, beacuse of the close button overlay */
|
||||
--tab-hover-background-color: var(--gnome-tabbar-tab-hover-background) !important;
|
||||
--tab-selected-bgcolor: var(--gnome-tabbar-tab-active-background) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tabsbar */
|
||||
#TabsToolbar {
|
||||
background-color: var(--gnome-tabbar-background) !important;
|
||||
border-bottom: 0 !important;
|
||||
padding: 0 calc(var(--gnome-toolbar-padding) / 2) !important;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
|
||||
--toolbarbutton-inner-padding: var(--toolbarbutton-inner-padding) !important;
|
||||
/* Remove hover effects on tab bar buttons */
|
||||
--toolbarbutton-active-background: transparent !important;
|
||||
--toolbarbutton-hover-background: transparent !important;
|
||||
/* Tabs scroll fade */
|
||||
--gnome-tabbar-fade-background: var(--gnome-tabbar-background);
|
||||
|
||||
/* Remove tabbar's window controls */
|
||||
.titlebar-buttonbox-container {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Remove blank spaces on tabs start and end */
|
||||
.titlebar-spacer {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Tabsbar buttons */
|
||||
.toolbarbutton-1 {
|
||||
border-radius: var(--gnome-button-radius) !important;
|
||||
margin: 0px calc(var(--gnome-toolbar-spacing) / 2) var(--gnome-toolbar-padding) !important;
|
||||
min-height: var(--gnome-button-size) !important;
|
||||
min-width: var(--gnome-button-size) !important;
|
||||
transition: background var(--gnome-animation-time);
|
||||
|
||||
&:not([disabled]):not(:active):not([open]):hover {
|
||||
background-color: var(--gnome-tabbar-tab-hover-background) !important;
|
||||
}
|
||||
&:active, &[open] {
|
||||
background-color: var(--gnome-tabbar-tab-active-background) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Tabs container */
|
||||
#tabbrowser-tabs {
|
||||
/* Horizontal */
|
||||
&[orient="horizontal"] {
|
||||
&, arrowscrollbox {
|
||||
height: auto !important;
|
||||
min-height: auto !important;
|
||||
--tab-min-height: var(--gnome-button-size) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Vertical */
|
||||
&[orient="vertical"] {
|
||||
grid-gap: 0 !important;
|
||||
|
||||
&[expanded] {
|
||||
--tab-inner-inline-margin: var(--gnome-toolbar-padding) !important;
|
||||
}
|
||||
|
||||
#tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button,
|
||||
#vertical-tabs-newtab-button {
|
||||
margin-block: calc(var(--gnome-toolbar-padding) / 2) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Tabs scroll */
|
||||
#tabbrowser-arrowscrollbox {
|
||||
&[orient="horizontal"] {
|
||||
position: relative !important;
|
||||
}
|
||||
|
||||
&[orient="vertical"] {
|
||||
--gnome-undershoot-top: inset 0 1px color-mix(in srgb, var(--gnome-shade-color) 75%, transparent);
|
||||
--gnome-undershoot-bottom: inset 0 -1px color-mix(in srgb, var(--gnome-shade-color) 75%, transparent);
|
||||
|
||||
&[overflowing] {
|
||||
&:not([scrolledtostart]) {
|
||||
box-shadow: var(--gnome-undershoot-top);
|
||||
}
|
||||
&:not([scrolledtoend]) {
|
||||
box-shadow: var(--gnome-undershoot-bottom);
|
||||
}
|
||||
&:not([scrolledtostart], [scrolledtoend]) {
|
||||
box-shadow: var(--gnome-undershoot-top), var(--gnome-undershoot-bottom);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Horizontal tabs scroll fade */
|
||||
#scrollbutton-up:has(~ scrollbox[orient="horizontal"]),
|
||||
scrollbox[orient="horizontal"] ~ #scrollbutton-down {
|
||||
border-top: 0 !important;
|
||||
position: absolute !important;
|
||||
z-index: 5 !important;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
#scrollbutton-up:has(~ scrollbox[orient="horizontal"])[disabled],
|
||||
scrollbox[orient="horizontal"] ~ #scrollbutton-down[disabled] {
|
||||
display: none;
|
||||
}
|
||||
#scrollbutton-up:has(~ scrollbox[orient="horizontal"]) > .toolbarbutton-icon,
|
||||
scrollbox[orient="horizontal"] ~ #scrollbutton-down > .toolbarbutton-icon{
|
||||
visibility: hidden;
|
||||
}
|
||||
scrollbox[orient="horizontal"] ~ #scrollbutton-down {
|
||||
right: 0;
|
||||
margin-inline-end: -5px !important;
|
||||
}
|
||||
#scrollbutton-up:has(~ scrollbox[orient="horizontal"]) {
|
||||
left: 0;
|
||||
margin-inline-start: -5px !important;
|
||||
}
|
||||
#scrollbutton-up:has(~ scrollbox[orient="horizontal"]):not([disabled])::after,
|
||||
scrollbox[orient="horizontal"] ~ #scrollbutton-down:not([disabled])::after {
|
||||
content: "";
|
||||
height: 39px;
|
||||
position: absolute;
|
||||
top: -3px;
|
||||
z-index: -1;
|
||||
width: 50px;
|
||||
pointer-events: none;
|
||||
}
|
||||
#scrollbutton-up:has(~ scrollbox[orient="horizontal"]):not([disabled])::after {
|
||||
background: linear-gradient(to right, var(--gnome-tabbar-fade-background) 10px, transparent);
|
||||
left: 0;
|
||||
}
|
||||
scrollbox[orient="horizontal"] ~ #scrollbutton-down:not([disabled])::after {
|
||||
background: linear-gradient(to left, var(--gnome-tabbar-fade-background) 10px, transparent);
|
||||
right: 0;
|
||||
}
|
||||
spacer[part=overflow-start-indicator], spacer[part=overflow-end-indicator] {
|
||||
width: 0 !important;
|
||||
border: 0 !important;
|
||||
margin-inline: 0 !important;
|
||||
}
|
||||
|
||||
/* Tabs */
|
||||
.tabbrowser-tab {
|
||||
&[selected="true"] {
|
||||
--gnome-tabbar-tab-close-overlay-bg: var(--gnome-tabbar-tab-active-background);
|
||||
&:hover {
|
||||
--gnome-tabbar-tab-close-overlay-bg: var(--gnome-tabbar-tab-active-hover-background) !important;
|
||||
}
|
||||
}
|
||||
@media -moz-pref("gnomeTheme.closeOnlySelectedTabs") {
|
||||
--gnome-tabbar-tab-close-overlay-bg: unset;
|
||||
}
|
||||
|
||||
/* OPTIONAL: Add more contrast to the active tab */
|
||||
@media -moz-pref("gnomeTheme.activeTabContrast") {
|
||||
&[selected="true"], &:hover {
|
||||
--tab-hover-background-color: var(--gnome-tabbar-tab-active-background-contrast) !important;
|
||||
--tab-selected-bgcolor: var(--gnome-tabbar-tab-active-background-contrast) !important;
|
||||
--gnome-tabbar-tab-close-overlay-bg: var(--gnome-tabbar-tab-active-background-contrast) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Horizontal tabs only */
|
||||
#tabbrowser-tabs[orient="horizontal"] & {
|
||||
position: relative;
|
||||
|
||||
> stack {
|
||||
height: var(--tab-min-height) !important;
|
||||
width: var(--tab-min-height) !important;
|
||||
min-height: var(--tab-min-height) !important;
|
||||
}
|
||||
|
||||
/* Not in collapsed tab-group */
|
||||
:not([collapsed]) > & {
|
||||
padding: 0px calc(var(--gnome-toolbar-spacing) / 2 - 1px) var(--gnome-toolbar-padding) !important;
|
||||
&:not([hidden=true]):last-of-type {
|
||||
padding-right: calc(var(--gnome-toolbar-spacing) / 2) !important;
|
||||
}
|
||||
|
||||
/* Full width tabs */
|
||||
@media not -moz-pref("gnomeTheme.normalWidthTabs") {
|
||||
&:not([style^="max-width"]):not([pinned]),
|
||||
&[style^="max-width: 100px !important;"]:not([pinned]) {
|
||||
max-width: 100% !important;
|
||||
--tab-min-width-pref: 131px !important;
|
||||
}
|
||||
&:not([style^="max-width"]):not([pinned]):not([fadein]),
|
||||
&[style^="max-width: 100px !important;"]:not([pinned]):not([fadein]) {
|
||||
max-width: .1px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Vertical tabs only */
|
||||
#tabbrowser-tabs[orient="vertical"] & {
|
||||
padding-block: calc(var(--gnome-toolbar-spacing) / 2) !important;
|
||||
&[pinned] {
|
||||
padding-block: var(--gnome-toolbar-spacing) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Tab background */
|
||||
.tab-background {
|
||||
box-shadow: none !important;
|
||||
transition: background var(--gnome-tab-animation-time) linear !important;
|
||||
margin-block: 0 !important;
|
||||
|
||||
/* Selected hover */
|
||||
tab[selected]:hover & {
|
||||
background-color: var(--gnome-selected-hover-color) !important;
|
||||
@media not -moz-pref("sidebar.verticalTabs") {
|
||||
background-color: var(--gnome-tabbar-tab-active-hover-background) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Use raised button colors for pinned tabs in vertical */
|
||||
#tabbrowser-tabs[orient="vertical"] tab[pinned] & {
|
||||
background-color: var(--gnome-button-background) !important;
|
||||
&[selected] {
|
||||
background-color: var(--gnome-button-checked-background) !important;
|
||||
}
|
||||
|
||||
tab:hover & {
|
||||
background-color: var(--gnome-button-hover-background) !important;
|
||||
&[selected] {
|
||||
background-color: var(--gnome-button-checked-hover-background) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Add solid bg on tabs dnd */
|
||||
#tabbrowser-tabs[movingtab] tab:is([multiselected], [selected]) & {
|
||||
background-color: var(--gnome-tabbar-background) !important;
|
||||
background-image: linear-gradient(var(--tab-selected-bgcolor), var(--tab-selected-bgcolor)) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tab content */
|
||||
.tab-content {
|
||||
#tabbrowser-tabs[orient="horizontal"] & {
|
||||
/* Center content on horizontal tabs */
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
margin-top: -1px;
|
||||
position: relative !important;
|
||||
&:not([pinned]) {
|
||||
padding: 0 4px !important;
|
||||
}
|
||||
&[pinned] {
|
||||
padding: 0 5px !important;
|
||||
}
|
||||
|
||||
/* Rearrange contents */
|
||||
.tab-audio-button {
|
||||
order: 0;
|
||||
}
|
||||
.tab-icon-stack {
|
||||
order: 1;
|
||||
}
|
||||
.tab-label-container {
|
||||
order: 2;
|
||||
}
|
||||
.tab-close-button {
|
||||
order: 3;
|
||||
}
|
||||
|
||||
/* Prevent tab icons size breaking */
|
||||
.tab-icon-image, .tab-icon-sound, .tab-throbber, .tab-throbber-fallback, .tab-close-button {
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
/* Tab close button etc. positioning */
|
||||
.tab-throbber, .tab-icon-image, .tab-sharing-icon-overlay, .tab-icon-sound, .tab-close-button {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
/* Close button overlay */
|
||||
&:not([pinned])::before {
|
||||
background: linear-gradient(to left, var(--gnome-tabbar-tab-close-overlay-bg) 50%, transparent);
|
||||
border-radius: 0 4px 4px 0;
|
||||
bottom: 2px;
|
||||
content: "";
|
||||
height: calc(100% - 5px);
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
transition: all var(--gnome-tab-animation-time) linear;
|
||||
width: 55px;
|
||||
z-index: 99;
|
||||
}
|
||||
&:not([pinned])[selected]::before,
|
||||
tab:hover &::before {
|
||||
opacity: 1;
|
||||
}
|
||||
:root[dir="rtl"] &:not([pinned])::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Left close button */
|
||||
@media (-moz-gtk-csd-reversed-placement) and (not -moz-pref("gnomeTheme.swapTabClose")),
|
||||
(-moz-pref("gnomeTheme.swapTabClose")) and (not (-moz-gtk-csd-reversed-placement)) {
|
||||
/* Rearrange and fix alignment */
|
||||
.tab-audio-button {
|
||||
order: 3 !important;
|
||||
}
|
||||
.tab-icon-stack {
|
||||
margin-inline-start: 0 !important;
|
||||
}
|
||||
.tab-label-container {
|
||||
margin-inline-end: auto !important;
|
||||
}
|
||||
.tab-close-button {
|
||||
margin-inline-start: 0 !important;
|
||||
order: 0 !important;
|
||||
}
|
||||
|
||||
/* Overlay is not longer needed */
|
||||
:root[dir="ltr"] &:not([pinned])::before {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Tab label */
|
||||
.tab-label-container {
|
||||
#tabbrowser-tabs[orient="horizontal"] & {
|
||||
min-width: 0 !important;
|
||||
max-width: min-content !important;
|
||||
:root[dir="ltr"] &:not([pinned]) {
|
||||
margin-inline-end: -16px;
|
||||
}
|
||||
|
||||
/* Fix alignment when audio button is prestent */
|
||||
tab:is([muted], [soundplaying]) & {
|
||||
@media (not (-moz-gtk-csd-reversed-placement)) and (not -moz-pref("gnomeTheme.swapTabClose")) {
|
||||
margin-inline-end: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Hide secondary label, muted, playing, etc */
|
||||
.tab-secondary-label {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tab buttons */
|
||||
.tab-icon-overlay,
|
||||
.tab-close-button {
|
||||
border: 0 !important;
|
||||
box-sizing: content-box !important; /* Avoid deformation on flexbox */
|
||||
border-radius: 50% !important;
|
||||
padding: 4px !important;
|
||||
background-image: none !important;
|
||||
background-color: transparent !important;
|
||||
background-size: 24px;
|
||||
transition: all var(--gnome-animation-time) ease-out !important;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--gnome-hover-color) !important;
|
||||
}
|
||||
&:active {
|
||||
background-color: var(--gnome-active-color) !important;
|
||||
}
|
||||
|
||||
/* Set solid bg when in no expanded vertical tabs */
|
||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & {
|
||||
background-color: var(--gnome-window-background) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Audio button */
|
||||
.tab-audio-button {
|
||||
--button-border-radius: 50% !important;
|
||||
--button-size-icon-small: 24px !important;
|
||||
|
||||
#tabbrowser-tabs[orient="horizontal"] & {
|
||||
margin-inline: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tab close button */
|
||||
.tab-close-button {
|
||||
fill: var(--gnome-window-color) !important;
|
||||
fill-opacity: 1 !important;
|
||||
height: 16px !important;
|
||||
list-style-image: var(--gnome-icon-window-close-symbolic) !important;
|
||||
width: 16px !important;
|
||||
-moz-context-properties: fill, fill-opacity !important;
|
||||
|
||||
#tabbrowser-tabs[orient="horizontal"] & {
|
||||
margin-inline-start: auto;
|
||||
margin-inline-end: 0 !important;
|
||||
opacity: 1 !important;
|
||||
z-index: 100 !important;
|
||||
|
||||
/* Autohide */
|
||||
&:not([selected]) {
|
||||
visibility: hidden !important;
|
||||
opacity: 0 !important;
|
||||
}
|
||||
/* Show close button on tab hover */
|
||||
tab:hover & {
|
||||
@media not -moz-pref("gnomeTheme.closeOnlySelectedTabs") {
|
||||
visibility: visible !important;
|
||||
opacity: 1 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Icon overlay */
|
||||
.tab-icon-overlay {
|
||||
height: 12px !important;
|
||||
left: 11px !important;
|
||||
top: -3px !important;
|
||||
width: 12px !important;
|
||||
|
||||
&:not([crashed]) {
|
||||
padding: 2px !important;
|
||||
background: var(--gnome-button-background) !important;
|
||||
&:hover {
|
||||
background: var(--gnome-button-hover-background) !important;
|
||||
}
|
||||
}
|
||||
|
||||
&[busy] {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tab icon */
|
||||
.tab-icon-stack {
|
||||
align-items: center;
|
||||
|
||||
/* Avoid firefox hiding elements on indicator-replaces-favicon */
|
||||
&[indicator-replaces-favicon] :not(&) {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[orient="horizontal"] & {
|
||||
&:not([pinned]) {
|
||||
margin-inline-start: auto !important;
|
||||
margin-inline-end: 2px;
|
||||
|
||||
@media -moz-pref("gnomeTheme.tabAlignLeft") {
|
||||
/* OPTIONAL: Align tab items left */
|
||||
margin-inline-start: 0 !important;
|
||||
padding: 0 5px !important;
|
||||
}
|
||||
|
||||
.tab-throbber, .tab-icon-pending, .tab-icon-image, .tab-sharing-icon-overlay, .tab-icon-overlay {
|
||||
margin-inline-end: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&[busy], &[sharing], .tab-icon-image:not([sharing]) {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.tab-icon-image {
|
||||
transition: opacity var(--gnome-animation-time) ease-out !important;
|
||||
}
|
||||
}
|
||||
|
||||
&::before {
|
||||
margin: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tabs separators */
|
||||
:root[dir="ltr"] #tabbrowser-tabs[orient="horizontal"] {
|
||||
:not([collapsed]) > tab {
|
||||
border-color: transparent !important;
|
||||
border-left-width: 1px !important;
|
||||
border-style: solid !important;
|
||||
}
|
||||
tab:not(:first-of-type, [selected], :hover) {
|
||||
--gnome-tabbar-tab-separator-hack0: var(--gnome-tabbar-background);
|
||||
--gnome-tabbar-tab-separator-hack1: linear-gradient(
|
||||
to bottom,
|
||||
var(--gnome-tabbar-tab-separator-hack0) 0,
|
||||
var(--gnome-tabbar-tab-separator-hack0) 3px,
|
||||
var(--gnome-tabbar-tab-separator-color) 3px,
|
||||
var(--gnome-tabbar-tab-separator-color) 31px,
|
||||
var(--gnome-tabbar-tab-separator-hack0) 31px,
|
||||
var(--gnome-tabbar-tab-separator-hack0) 40px
|
||||
) 1;
|
||||
border-image: var(--gnome-tabbar-tab-separator-hack1);
|
||||
}
|
||||
tab[selected] ~ tab:not([hidden="true"]) {
|
||||
border-image: none;
|
||||
}
|
||||
tab[selected] ~ tab:not([hidden="true"]) ~ tab:not([hidden="true"]) {
|
||||
border-image: var(--gnome-tabbar-tab-separator-hack1);
|
||||
}
|
||||
tab:hover ~ tab:not([hidden="true"]) {
|
||||
border-image: none !important;
|
||||
}
|
||||
tab:hover ~ tab:not([hidden="true"]) ~ tab:not([hidden="true"]) {
|
||||
border-image: var(--gnome-tabbar-tab-separator-hack1) !important;
|
||||
}
|
||||
tab:hover ~ tab[selected] ~ tab:not([hidden="true"]) {
|
||||
border-image: none !important;
|
||||
}
|
||||
tab:hover ~ tab[selected] ~ tab:not([hidden="true"]) ~ tab:not([hidden="true"]) {
|
||||
border-image: var(--gnome-tabbar-tab-separator-hack1) !important;
|
||||
}
|
||||
tab-group[collapsed] + tab {
|
||||
border-image: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tabs group */
|
||||
tab-group {
|
||||
#tabbrowser-tabs[orient="horizontal"] & {
|
||||
.tab-group-line {
|
||||
margin-block-end: calc(var(--gnome-toolbar-padding) * -1) !important;
|
||||
margin-inline: calc((var(--gnome-toolbar-spacing) / 2) * -1) !important;
|
||||
}
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[orient="vertical"][expanded] & {
|
||||
margin-inline-start: calc(var(--gnome-toolbar-padding) * 2) !important;
|
||||
padding-inline-start: var(--tab-group-line-thickness);
|
||||
}
|
||||
}
|
||||
|
||||
.tab-group-label-container {
|
||||
#tabbrowser-tabs[orient="vertical"][expanded] & {
|
||||
margin-block: 0 !important;
|
||||
margin-inline-start: calc(var(--tab-group-line-thickness) * -1);
|
||||
|
||||
}
|
||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & {
|
||||
tab-group[collapsed] & {
|
||||
margin-block: var(--gnome-toolbar-padding) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Tabs group label */
|
||||
.tab-group-label {
|
||||
border-radius: 26px !important;
|
||||
|
||||
tab-group[collapsed] & {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
outline: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[orient="horizontal"] &,
|
||||
#tabbrowser-tabs[orient="vertical"][expanded] & {
|
||||
padding: 2px 9px !important;
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[orient="vertical"][expanded] & {
|
||||
align-items: center !important;
|
||||
display: flex;
|
||||
margin-block: var(--gnome-toolbar-padding) !important;
|
||||
|
||||
&::before {
|
||||
-moz-context-properties: fill;
|
||||
fill: currentColor !important;
|
||||
background: var(--gnome-icon-pan-end-symbolic) no-repeat;
|
||||
background-size: contain;
|
||||
content: "";
|
||||
display: block;
|
||||
height: 16px;
|
||||
margin-inline-end: 3px;
|
||||
width: 16px;
|
||||
}
|
||||
tab-group:not([collapsed]) &::before {
|
||||
background-image: var(--gnome-icon-pan-down-symbolic);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Tabs group line */
|
||||
.tab-group-line {
|
||||
#tabbrowser-tabs[orient="vertical"] & {
|
||||
inset-block: -3px !important;;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tabs group overflow */
|
||||
.tab-group-overflow-count-container {
|
||||
#tabbrowser-tabs[orient="vertical"] & {
|
||||
padding-block-start: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Remove spacing between pinned tabs and first tab */
|
||||
#tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) > #tabbrowser-arrowscrollbox > .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) {
|
||||
margin-inline-start: 0 !important;
|
||||
}
|
||||
|
||||
/* Always display close icon (hidden) */
|
||||
#tabbrowser-tabs[closebuttons="activetab"] .tab-close-button:not([pinned]) {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
/* Always show the muted icon when present */
|
||||
#tabbrowser-tabs:not([secondarytext-unsupported]) .tabbrowser-tab:not(:hover) .tab-icon-overlay[indicator-replaces-favicon] {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
/* Fix custom info tab icon */
|
||||
.tabbrowser-tab[image="chrome://global/skin/icons/info.svg"]:not([pinned]):not([busy]):not([progress]) .tab-icon-stack::before {
|
||||
margin-inline-end: 5.5px;
|
||||
}
|
||||
.tabbrowser-tab[image="chrome://global/skin/icons/info.svg"] .tab-icon-image {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Tabs containers */
|
||||
.tabbrowser-tab[usercontextid] {
|
||||
& > .tab-stack > .tab-background > .tab-context-line {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tab-label-container {
|
||||
color: var(--identity-tab-color) !important;
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & {
|
||||
.tab-background {
|
||||
outline: 1px solid var(--identity-tab-color) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.identity-color-blue,
|
||||
.identity-color-turquoise,
|
||||
.identity-color-green,
|
||||
.identity-color-yellow,
|
||||
.identity-color-orange,
|
||||
.identity-color-red,
|
||||
.identity-color-pink,
|
||||
.identity-color-purple {
|
||||
--identity-icon-color: var(--identity-tab-color) !important;
|
||||
}
|
||||
.identity-color-blue {
|
||||
--identity-tab-color: var(--gnome-tabbar-identity-color-blue) !important;
|
||||
}
|
||||
.identity-color-turquoise {
|
||||
--identity-tab-color: var(--gnome-tabbar-identity-color-turquoise) !important;
|
||||
}
|
||||
.identity-color-green {
|
||||
--identity-tab-color: var(--gnome-tabbar-identity-color-green) !important;
|
||||
}
|
||||
.identity-color-yellow {
|
||||
--identity-tab-color: var(--gnome-tabbar-identity-color-yellow) !important;
|
||||
}
|
||||
.identity-color-orange {
|
||||
--identity-tab-color: var(--gnome-tabbar-identity-color-orange) !important;
|
||||
}
|
||||
.identity-color-red {
|
||||
--identity-tab-color: var(--gnome-tabbar-identity-color-red) !important;
|
||||
}
|
||||
.identity-color-pink {
|
||||
--identity-tab-color: var(--gnome-tabbar-identity-color-pink) !important;
|
||||
}
|
||||
.identity-color-purple {
|
||||
--identity-tab-color: var(--gnome-tabbar-identity-color-purple) !important;
|
||||
}
|
||||
|
||||
/* Needs attetion tab indicator */
|
||||
.tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content,
|
||||
.tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged] {
|
||||
background-size: 0px 0px !important;
|
||||
background-position: center bottom !important;
|
||||
transition-property: background-size;
|
||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition-duration: calc(var(--gnome-animation-time) / 2);
|
||||
}
|
||||
.tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected]),
|
||||
.tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected]) {
|
||||
background-image: radial-gradient(var(--gnome-tabbar-tab-needs-attetion), var(--gnome-tabbar-tab-needs-attetion) 10px) !important;
|
||||
background-size: clamp(20%, 50%, 7rem) 2px !important;
|
||||
}
|
||||
.tab-label[attention]:not([selected]) {
|
||||
font-weight: normal !important;
|
||||
}
|
||||
|
||||
/* Tab spinner */
|
||||
.tab-throbber::before {
|
||||
animation: none !important;
|
||||
background-image: url("../icons/spinner.png") !important;
|
||||
background-size: 16px;
|
||||
width: 16px !important;
|
||||
opacity: 1 !important;
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background-image: url("../icons/spinner-dark.png") !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tabs manager menu */
|
||||
#alltabs-button {
|
||||
@media not -moz-pref("gnomeTheme.allTabsButton") {
|
||||
visibility: collapse;
|
||||
}
|
||||
|
||||
@media -moz-pref("browser.tabs.tabmanager.enabled"), -moz-pref("gnomeTheme.allTabsButtonOnOverflow") {
|
||||
#tabbrowser-tabs[overflow] ~ & {
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
|
||||
#tabbrowser-tabs:not([overflow])[using-closing-tabs-spacer] ~ & {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Firefox View */
|
||||
#TabsToolbar #firefox-view-button .toolbarbutton-icon {
|
||||
box-shadow: none !important;
|
||||
fill: var(--gnome-toolbar-icon-fill) !important;
|
||||
height: 16px !important;
|
||||
opacity: 1 !important;
|
||||
width: 16px !important;
|
||||
overflow: visible !important;
|
||||
border-radius: initial !important;
|
||||
}
|
||||
:root:not([privatebrowsingmode="temporary"]):not([firefoxviewhidden]) :is(#firefox-view-button, #wrapper-firefox-view-button) + #tabbrowser-tabs {
|
||||
border-inline-start: 0 !important;
|
||||
padding-inline-start: var(--tab-overflow-pinned-tabs-width) !important;
|
||||
margin-inline-start: 0 !important;
|
||||
}
|
||||
|
||||
/* OPTIONAL: Hide single tab */
|
||||
@media -moz-pref("gnomeTheme.hideSingleTab") and (not -moz-pref("sidebar.verticalTabs")) {
|
||||
#tabbrowser-tabs:not(:has(tab:not([hidden="true"]) ~ tab:not([hidden="true"]))) {
|
||||
:is(tab, tab ~ toolbarbutton, tab ~ #tabbrowser-arrowscrollbox-periphery) {
|
||||
visibility: collapse;
|
||||
}
|
||||
~ #alltabs-button {
|
||||
visibility: collapse;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* OPTIONAL: Use tabs as headerbar */
|
||||
@media -moz-pref("gnomeTheme.tabsAsHeaderbar") and (not -moz-pref("sidebar.verticalTabs")) {
|
||||
/* Rearrange bars */
|
||||
#navigator-toolbox #TabsToolbar {
|
||||
order: 0;
|
||||
}
|
||||
#navigator-toolbox #toolbar-menubar {
|
||||
order: 1;
|
||||
}
|
||||
#navigator-toolbox #nav-bar {
|
||||
order: 3;
|
||||
}
|
||||
#navigator-toolbox #PersonalToolbar {
|
||||
order: 4;
|
||||
}
|
||||
@media -moz-pref("gnomeTheme.bookmarksToolbarUnderTabs") {
|
||||
#navigator-toolbox #PersonalToolbar {
|
||||
order: 2 !important;
|
||||
}
|
||||
}
|
||||
|
||||
#TabsToolbar {
|
||||
/* Spacing should be removed on the side touching the URL bar */
|
||||
.toolbarbutton-1,
|
||||
.titlebar-button {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.toolbarbutton-1 {
|
||||
margin-top: var(--gnome-toolbar-padding) !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#tabbrowser-tabs[orient="horizontal"] {
|
||||
/* Invert padding */
|
||||
:not([collapsed]) > .tabbrowser-tab, .tabbrowser-tab {
|
||||
padding-bottom: 0px !important;
|
||||
padding-top: var(--gnome-toolbar-padding) !important;
|
||||
}
|
||||
|
||||
/* Move tab group line to top */
|
||||
.tab-group-label-container::after {
|
||||
inset: 0 !important;
|
||||
}
|
||||
tab-group {
|
||||
.tab-group-line {
|
||||
margin-block-end: 0 !important;
|
||||
margin-block-start: calc(var(--gnome-toolbar-padding) * -1) !important;
|
||||
top: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Tabs separators */
|
||||
:root[dir="ltr"] & {
|
||||
tab:not(:first-of-type, [selected], :hover) {
|
||||
--gnome-tabbar-tab-separator-hack1: linear-gradient(
|
||||
to bottom,
|
||||
var(--gnome-tabbar-tab-separator-hack0) 0,
|
||||
var(--gnome-tabbar-tab-separator-hack0) 9px,
|
||||
var(--gnome-tabbar-tab-separator-color) 9px,
|
||||
var(--gnome-tabbar-tab-separator-color) 37px,
|
||||
var(--gnome-tabbar-tab-separator-hack0) 37px,
|
||||
var(--gnome-tabbar-tab-separator-hack0) 40px
|
||||
) 1;
|
||||
border-image: var(--gnome-tabbar-tab-separator-hack1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Remove nav-bar rounding and padding */
|
||||
:root[customtitlebar][sizemode="normal"]:not([gtktiledwindow="true"]) #nav-bar {
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
|
||||
/* Round and pad tab-bar */
|
||||
:root[customtitlebar][sizemode="normal"]:not([gtktiledwindow="true"]) #TabsToolbar {
|
||||
border-radius: env(-moz-gtk-csd-titlebar-radius) env(-moz-gtk-csd-titlebar-radius) 0 0 !important
|
||||
}
|
||||
:root[customtitlebar]:not([inFullscreen], [sizemode="maximized"]) #TabsToolbar .toolbar-items {
|
||||
padding: 0 46px;
|
||||
}
|
||||
|
||||
/* Hide duplicate window controls from navbar */
|
||||
:root[customtitlebar] #nav-bar .titlebar-buttonbox-container {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Force displaying controls in tab-bar */
|
||||
:root[customtitlebar]:not([inDOMFullscreen]) #TabsToolbar .titlebar-buttonbox-container {
|
||||
display: flex !important;
|
||||
padding-top: var(--gnome-toolbar-padding) !important;
|
||||
visibility: visible !important;
|
||||
}
|
||||
|
||||
/* Blend single tab into whole bar */
|
||||
@media -moz-pref("gnomeTheme.hideSingleTab") {
|
||||
#tabbrowser-tabs:not(:has(tab:not([hidden="true"]) ~ tab:not([hidden="true"]))) :is(
|
||||
tab,
|
||||
tab ~ toolbarbutton,
|
||||
tab ~ #tabbrowser-arrowscrollbox-periphery
|
||||
) {
|
||||
visibility: visible;
|
||||
}
|
||||
#tabbrowser-tabs:not(:has(tab:not([hidden="true"]) ~ tab:not([hidden="true"]))) tab {
|
||||
-moz-window-dragging: drag !important;
|
||||
}
|
||||
#tabbrowser-tabs:not(:has(tab:not([hidden="true"]) ~ tab:not([hidden="true"]))) .tab-background {
|
||||
display: none !important
|
||||
}
|
||||
#tabbrowser-tabs:not(:has(tab:not([hidden="true"]) ~ tab:not([hidden="true"]))) .tab-close-button {
|
||||
visibility: hidden !important;
|
||||
opacity: 0 !important;
|
||||
}
|
||||
#tabbrowser-tabs:not(:has(tab:not([hidden="true"]) ~ tab:not([hidden="true"]))) .tab-content::before {
|
||||
--gnome-tabbar-tab-close-overlay-bg: unset !important;
|
||||
}
|
||||
:root[dir="ltr"] #tabbrowser-tabs:not(:has(tab:not([hidden="true"]) ~ tab:not([hidden="true"]))) .tab-label-container[textoverflow="true"] {
|
||||
margin-inline-end: -16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,189 @@
|
|||
/* Toolbox, a container for all toolbars (toolbox#navigator-toolbox):
|
||||
* - menu bar (toolbar#toolbar-menubar)
|
||||
* - tab bar (toolbar#TabsToolbar)
|
||||
* - header bar (toolbar#nav-bar)
|
||||
* - bookmark bar (toolbar#PersonalToolbar)
|
||||
* - add-ons can add their own toolbars (toolbar) */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
:root {
|
||||
--tabpanel-background-color: --gnome-window-background !important;
|
||||
}
|
||||
|
||||
/* Toolbox colors */
|
||||
#navigator-toolbox {
|
||||
background: var(--gnome-toolbar-background) !important;
|
||||
border-bottom: 1px solid var(--gnome-toolbar-border-color) !important;
|
||||
}
|
||||
|
||||
#PersonalToolbar, #toolbar-menubar, #TabsToolbar, findbar {
|
||||
appearance: none !important;
|
||||
border: 0 !important;
|
||||
background: var(--gnome-toolbar-background) !important;
|
||||
&:-moz-window-inactive {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
}
|
||||
findbar {
|
||||
border-top: 1px solid var(--gnome-toolbar-border-color) !important;
|
||||
}
|
||||
#nav-bar:-moz-window-inactive,
|
||||
#PersonalToolbar:-moz-window-inactive,
|
||||
#toolbar-menubar:-moz-window-inactive,
|
||||
#TabsToolbar:-moz-window-inactive,
|
||||
findbar:-moz-window-inactive,
|
||||
.container.infobar:-moz-window-inactive {
|
||||
transition: background var(--gnome-animation-time) ease-out;
|
||||
}
|
||||
|
||||
#navigator-toolbox:-moz-window-inactive label,
|
||||
#downloads-indicator-anchor:-moz-window-inactive,
|
||||
findbar:-moz-window-inactive image:not(#hack),
|
||||
findbar:-moz-window-inactive label,
|
||||
findbar:-moz-window-inactive description,
|
||||
#viewButton:-moz-window-inactive dropmarker,
|
||||
.container.infobar:-moz-window-inactive {
|
||||
opacity: 0.5 !important;
|
||||
}
|
||||
|
||||
#toolbar-menubar:not([inactive=true]) {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
/* Overrides: Remove border below the menu bar / above the header bar */
|
||||
#TabsToolbar:not([collapsed="true"]) + #nav-bar {
|
||||
border-top-width: 0 !important;
|
||||
}
|
||||
#navigator-toolbox::after {
|
||||
border-bottom-width: 0 !important;
|
||||
}
|
||||
|
||||
/* Reorder toolbars */
|
||||
#navigator-toolbox #nav-bar {
|
||||
order: 0;
|
||||
}
|
||||
#navigator-toolbox #PersonalToolbar {
|
||||
order: 2;
|
||||
}
|
||||
#navigator-toolbox #TabsToolbar {
|
||||
order: 3;
|
||||
}
|
||||
|
||||
#notifications-toolbar {
|
||||
order: 100;
|
||||
}
|
||||
.notificationbox-stack {
|
||||
order: 1000;
|
||||
}
|
||||
|
||||
/* Content notifications */
|
||||
.notificationbox-stack notification-message {
|
||||
background-color: color-mix(in srgb, var(--gnome-accent-bg) 30%, var(--gnome-window-background)) !important;
|
||||
border: 0 !important;
|
||||
border-top: 1px solid var(--gnome-toolbar-border-color) !important;
|
||||
border-radius: 0 !important;
|
||||
margin: 0 !important;
|
||||
|
||||
&[type="warning"] {
|
||||
background-color: #ffe900 !important;
|
||||
}
|
||||
&[type="critical"] {
|
||||
background-color: #d70022 !important;
|
||||
}
|
||||
|
||||
&[style*="margin-top"] {
|
||||
margin-top: -48px !important;
|
||||
}
|
||||
|
||||
&::before {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
link[href="chrome://global/content/elements/moz-message-bar.css"] ~ .container {
|
||||
background: none !important;
|
||||
border-radius: 0 !important;
|
||||
box-shadow: none !important;
|
||||
gap: var(--gnome-toolbar-spacing) !important;
|
||||
padding: var(--gnome-toolbar-padding) !important;
|
||||
|
||||
.close {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.icon {
|
||||
color: var(--gnome-window-color);
|
||||
height: 16px !important;
|
||||
width: 16px !important;
|
||||
margin: 8px 0 !important;
|
||||
}
|
||||
|
||||
.text-container {
|
||||
flex: auto;
|
||||
padding-block: 0 !important;
|
||||
}
|
||||
|
||||
.text-content {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Bookmarks */
|
||||
#PersonalToolbar {
|
||||
padding: var(--gnome-toolbar-padding) !important;
|
||||
padding-top: 0 !important;
|
||||
--bookmarks-toolbar-overlapping-browser-height: auto;
|
||||
}
|
||||
#PlacesToolbar toolbarseparator {
|
||||
border-top: 0 !important;
|
||||
}
|
||||
#PlacesToolbarItems > toolbarseparator::before {
|
||||
border-image-source: none !important;
|
||||
border-color: var(--gnome-tabbar-tab-separator-color) !important;
|
||||
}
|
||||
@media -moz-pref("gnomeTheme.bookmarksOnFullscreen") { /* OPTIONAL: Show bookmarks bar while in fullscreen */
|
||||
:root[inFullscreen] #PersonalToolbar{
|
||||
visibility: visible !important;
|
||||
}
|
||||
}
|
||||
|
||||
#import-button,
|
||||
#PlacesToolbar .bookmark-item {
|
||||
border-radius: 6px !important;
|
||||
color: var(--gnome-window-color) !important;
|
||||
padding: 3px 6px !important;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--gnome-selected-color) !important;
|
||||
}
|
||||
&:active, &[open] {
|
||||
background-color: var(--gnome-selected-active-color) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Text link */
|
||||
.text-link, a {
|
||||
color: var(--gnome-accent) !important;
|
||||
}
|
||||
|
||||
/* Selection*/
|
||||
*::-moz-selection {
|
||||
background-color: var(--gnome-selection-bg) !important;
|
||||
}
|
||||
|
||||
/* OPTIONAL: Hide WebRTC indicator */
|
||||
@media -moz-pref("gnomeTheme.hideWebrtcIndicator") {
|
||||
#webrtcIndicator {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* OPTIONAL: Move Bookmarks toolbar under tabs */
|
||||
@media -moz-pref("gnomeTheme.bookmarksToolbarUnderTabs") {
|
||||
#navigator-toolbox #PersonalToolbar {
|
||||
order: 3;
|
||||
}
|
||||
#navigator-toolbox #TabsToolbar {
|
||||
order: 2;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,263 @@
|
|||
/* Header bar's URL bar */
|
||||
|
||||
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
|
||||
#urlbar {
|
||||
--urlbar-height: 34.00px;
|
||||
--urlbar-toolbar-height: 34.00px !important;
|
||||
}
|
||||
|
||||
#urlbar-container {
|
||||
--urlbar-container-height: 34px !important;
|
||||
|
||||
@media (max-width: 630px) {
|
||||
width: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Center the URL bar */
|
||||
toolbarspring {
|
||||
max-width: 10000px !important;
|
||||
}
|
||||
|
||||
/* URL bar */
|
||||
#urlbar {
|
||||
box-shadow: none !important;
|
||||
&[breakout] {
|
||||
width: calc(var(--urlbar-width) - var(--gnome-toolbar-spacing)) !important;
|
||||
}
|
||||
|
||||
.urlbar-background {
|
||||
box-shadow: var(--gnome-entry-box-shadow) !important;
|
||||
border: 0 !important;
|
||||
border-radius: var(--gnome-entry-radius) !important;
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.urlbar-input-container {
|
||||
padding: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.urlbar-input::placeholder, .searchbar-textbox::placeholder {
|
||||
opacity: 0.85 !important;
|
||||
}
|
||||
|
||||
#urlbar-searchmode-switcher {
|
||||
background-color: transparent !important;
|
||||
border-radius: var(--gnome-button-radius) !important;
|
||||
&:hover {
|
||||
background-color: var(--gnome-hover-color) !important;
|
||||
}
|
||||
&:active, &[open] {
|
||||
background-color: var(--gnome-active-color) !important;
|
||||
}
|
||||
#urlbar[searchmode] & {
|
||||
background-color: var(--gnome-selected-color) !important;
|
||||
border-start-end-radius: 0 !important;
|
||||
border-end-end-radius: 0 !important;
|
||||
&:hover {
|
||||
background-color: var(--gnome-selected-hover-color) !important;
|
||||
}
|
||||
&:active, &[open] {
|
||||
background-color: var(--gnome-selected-active-color) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
#searchmode-switcher-icon {
|
||||
margin-inline-start: 6px !important;
|
||||
}
|
||||
#searchmode-switcher-chicklet {
|
||||
background-color: var(--gnome-button-background) !important;
|
||||
border-start-end-radius: var(--gnome-button-radius) !important;
|
||||
border-end-end-radius: var(--gnome-button-radius) !important;
|
||||
}
|
||||
#searchmode-switcher-title {
|
||||
color: var(--gnome-window-color);
|
||||
padding-inline: 4px !important;
|
||||
}
|
||||
#searchmode-switcher-close {
|
||||
background-size: 16px !important;
|
||||
border-radius: 24px !important;
|
||||
width: 24px !important;
|
||||
height: 24px !important;
|
||||
}
|
||||
|
||||
/* URL bar results */
|
||||
.urlbarView {
|
||||
background: transparent !important;
|
||||
color: var(--gnome-window-color) !important;
|
||||
margin: 11px 0 0 -3px !important;
|
||||
position: absolute !important;
|
||||
box-shadow: var(--gnome-menu-shadow) !important;
|
||||
border-radius: 12px !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
/* Search bar result */
|
||||
#PopupSearchAutoComplete {
|
||||
margin-top: 7px !important;
|
||||
}
|
||||
|
||||
.urlbarView-body-outer {
|
||||
--item-padding-start: 0 !important;
|
||||
--item-padding-end: 0 !important;
|
||||
background: var(--gnome-menu-background) !important;
|
||||
overflow-x: auto;
|
||||
padding: 2px 6px !important;
|
||||
border-radius: 8px 8px 0 0 !important;
|
||||
}
|
||||
|
||||
.urlbarView-body-inner {
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
.urlbarView-row-inner, .urlbarView-no-wrap {
|
||||
align-items: center !important;
|
||||
}
|
||||
.urlbarView-row-inner {
|
||||
padding-block: 5px !important;
|
||||
border-radius: 5px !important;
|
||||
}
|
||||
|
||||
.urlbarView-row[selected] {
|
||||
background: var(--gnome-selected-color) !important;
|
||||
color: var(--gnome-window-color) !important;
|
||||
}
|
||||
.urlbarView-row[selected]:hover {
|
||||
background: var(--gnome-selected-hover-color) !important;
|
||||
}
|
||||
.urlbarView-row:not([selected]):hover {
|
||||
background: var(--gnome-hover-color) !important;
|
||||
}
|
||||
.urlbarView-row:not([selected]):active {
|
||||
background: var(--gnome-active-color) !important;
|
||||
}
|
||||
|
||||
.urlbarView-url {
|
||||
color: var(--gnome-accent) !important;
|
||||
}
|
||||
|
||||
.urlbarView-action {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
/* Fix items overflow */
|
||||
.urlbarView[actionoverride] .urlbarView-row[has-url] > .urlbarView-row-inner > .urlbarView-no-wrap,
|
||||
.urlbarView-row[has-url]:not([type$="tab"]) > .urlbarView-row-inner > .urlbarView-no-wrap, .urlbarView-row[has-url]:is([type="remotetab"],
|
||||
[sponsored]):is(:hover, [selected]) > .urlbarView-row-inner > .urlbarView-no-wrap {
|
||||
max-width: calc(96% - 2 * (var(--urlbarView-favicon-width) + (6px + 2px))) !important;
|
||||
}
|
||||
|
||||
/* Search engines buttons */
|
||||
.search-one-offs {
|
||||
padding: 8px !important;
|
||||
background: var(--gnome-menu-background) !important;
|
||||
border-top: 1px solid var(--gnome-menu-separator-color) !important;
|
||||
border-radius: 0 0 8px 8px !important;
|
||||
}
|
||||
|
||||
.search-one-offs[is_searchbar="true"] {
|
||||
margin-bottom: -8px !important;
|
||||
}
|
||||
|
||||
/* URL bar and Search bar */
|
||||
#urlbar[focused] .urlbar-textbox-container {
|
||||
margin: -1px !important;
|
||||
}
|
||||
#searchbar > .searchbar-textbox[focused] .searchbar-search-button {
|
||||
margin-left: -1px !important;
|
||||
}
|
||||
#searchbar > .searchbar-textbox[focused] .search-go-button {
|
||||
margin-right: -1px !important;
|
||||
}
|
||||
|
||||
/* URL bar and Search bar's icons */
|
||||
.urlbar-icon:hover,
|
||||
.urlbar-icon-wrapper:hover,
|
||||
.urlbar-icon[open],
|
||||
.urlbar-icon-wrapper[open],
|
||||
.urlbar-icon:hover:active,
|
||||
.urlbar-icon-wrapper:hover:active,
|
||||
.searchbar-search-button:hover .searchbar-search-icon,
|
||||
.searchbar-search-button[open] .searchbar-search-icon,
|
||||
.searchbar-search-button:hover:active .searchbar-search-icon {
|
||||
background-color: transparent !important;
|
||||
fill-opacity: 1 !important;
|
||||
}
|
||||
|
||||
#urlbar .urlbar-icon {
|
||||
margin: 0 !important;
|
||||
height: 100% !important;
|
||||
}
|
||||
#notification-popup-box {
|
||||
height: 100% !important;
|
||||
}
|
||||
|
||||
@media -moz-pref("browser.urlbar.richSuggestions.featureGate") {
|
||||
#urlbar:not(.searchButton) > .urlbar-input-container > #identity-box[pageproxystate="invalid"] > .identity-box-button {
|
||||
margin-inline-start: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Search mode indicator */
|
||||
#urlbar-search-mode-indicator,
|
||||
#urlbar-label-box,
|
||||
#urlbar-zoom-button {
|
||||
background: var(--gnome-button-background) !important;
|
||||
border: 0 !important;
|
||||
border-radius: 26px !important;
|
||||
outline: 0 !important;
|
||||
margin: 4px 0;
|
||||
}
|
||||
#urlbar-search-mode-indicator {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
#urlbar-search-mode-indicator-title {
|
||||
color: var(--gnome-window-color);
|
||||
padding-inline: 4px !important;
|
||||
}
|
||||
#urlbar-search-mode-indicator-close {
|
||||
background-size: 16px !important;
|
||||
background-position: center;
|
||||
border-radius: 26px !important;
|
||||
padding: 5px !important;
|
||||
}
|
||||
#urlbar-search-mode-indicator-close:hover {
|
||||
background-color: var(--gnome-button-hover-background) !important;
|
||||
}
|
||||
#urlbar-zoom-button {
|
||||
opacity: 0.8;
|
||||
}
|
||||
#urlbar-zoom-button:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Firefox identity box */
|
||||
#identity-box[pageproxystate="valid"].notSecureText > .identity-box-button,
|
||||
#identity-box[pageproxystate="valid"].chromeUI > .identity-box-button,
|
||||
#identity-box[pageproxystate="valid"].extensionPage > .identity-box-button,
|
||||
#urlbar-label-box {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
#identity-box[pageproxystate="valid"].notSecureText > .identity-box-button:hover:not([open]),
|
||||
#identity-box[pageproxystate="valid"].chromeUI > .identity-box-button:hover:not([open]),
|
||||
#identity-box[pageproxystate="valid"].extensionPage > .identity-box-button:hover:not([open]) {
|
||||
background-color: hsla(0,0%,70%,.2) !important;
|
||||
}
|
||||
|
||||
#identity-box[pageproxystate="valid"].notSecureText > .identity-box-button:hover:active,
|
||||
#identity-box[pageproxystate="valid"].notSecureText > .identity-box-button[open=true],
|
||||
#identity-box[pageproxystate="valid"].chromeUI > .identity-box-button:hover:active,
|
||||
#identity-box[pageproxystate="valid"].chromeUI > .identity-box-button[open=true],
|
||||
#identity-box[pageproxystate="valid"].extensionPage > .identity-box-button:hover:active,
|
||||
#identity-box[pageproxystate="valid"].extensionPage > .identity-box-button[open=true] {
|
||||
background-color: hsla(0,0%,70%,.3) !important;
|
||||
}
|
||||
|
||||
@media -moz-pref("browser.urlbar.richSuggestions.featureGate") {
|
||||
#identity-box[pageproxystate="invalid"] > .identity-box-button {
|
||||
padding-inline: var(--urlbar-icon-padding) !important;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
@namespace html url("http://www.w3.org/1999/xhtml");
|
||||
|
||||
/** Video player **/
|
||||
|
||||
.progressBar::-moz-progress-bar {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
.scrubber:hover::-moz-range-thumb,
|
||||
.volumeControl:hover::-moz-range-thumb {
|
||||
background-color: #ccc !important;
|
||||
}
|
||||
|
||||
.scrubber:active::-moz-range-thumb,
|
||||
.volumeControl:active::-moz-range-thumb {
|
||||
background-color: #bbb !important;
|
||||
}
|
||||
|
||||
.controlBar {
|
||||
border-radius: 5px;
|
||||
margin: auto;
|
||||
margin-bottom: 5px;
|
||||
width: 98.5%;
|
||||
max-width: 800px;
|
||||
height: 30px !important;
|
||||
background-color: rgba(20,20,20,0.8) !important;
|
||||
}
|
||||
|
||||
.controlBar > .button:enabled:hover {
|
||||
fill: #ccc !important;
|
||||
}
|
||||
|
||||
.controlBar > .button:enabled:hover:active {
|
||||
fill: #bbb !important;
|
||||
}
|
||||
|
||||
.scrubberStack {
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.playButton {
|
||||
scale: 0.8;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** Vertical Volume Bar **/
|
||||
/* I'm to stupid to get this working. Wasn't able to set proper position relative to mute button */
|
||||
|
||||
/* .muteButton:hover ~ .volumeStack{
|
||||
margin-bottom: 129px !important;
|
||||
}
|
||||
.volumeStack:hover {
|
||||
margin-bottom: 129px !important;
|
||||
}
|
||||
|
||||
.volumeStack {
|
||||
transform: rotate(270deg);
|
||||
max-height: 33px !important;
|
||||
min-width: 100px !important;
|
||||
position:absolute !important;
|
||||
margin-bottom: -150px !important;
|
||||
background-color: rgba(20,20,20,0.8) !important;
|
||||
border-bottom-right-radius: 5px !important;
|
||||
border-top-right-radius: 5px !important;
|
||||
transition-property: margin-bottom;
|
||||
transition-duration: 0.13s;
|
||||
transition-timing-function: linear;
|
||||
}
|
||||
|
||||
.volumeControl{
|
||||
width: 92% !important;
|
||||
margin-left: 5px !important;
|
||||
} */
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
/* Icons light/dark fix coloring hack filters */
|
||||
:root {
|
||||
--gnome-convert-icon-to-symbolic-hack-filter: invert(100%) sepia(100%) grayscale(100%) brightness(200%) brightness(85%) invert(100%);
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--gnome-convert-icon-to-symbolic-hack-filter: invert(100%) sepia(100%) grayscale(100%) brightness(200%) brightness(85%);
|
||||
}
|
||||
}
|
||||
|
||||
/* Make all tab icons look kinda like symbolic icons */
|
||||
tab .tab-icon-image {
|
||||
filter: var(--gnome-convert-icon-to-symbolic-hack-filter);
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
/* Icons light/dark fix coloring hack filters */
|
||||
:root {
|
||||
--gnome-icons-hack-filter: brightness(0) saturate(100%) invert(37%) sepia(8%) saturate(683%) hue-rotate(183deg) brightness(95%) contrast(84%);
|
||||
--gnome-window-icons-hack-filter: brightness(0) saturate(100%) invert(37%) sepia(8%) saturate(683%) hue-rotate(183deg) brightness(95%) contrast(84%);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
--gnome-icons-hack-filter: brightness(0) saturate(100%) invert(94%) sepia(11%) saturate(362%) hue-rotate(184deg) brightness(95%) contrast(87%);
|
||||
--gnome-window-icons-hack-filter: brightness(0) saturate(100%) invert(94%) sepia(11%) saturate(362%) hue-rotate(184deg) brightness(95%) contrast(87%);
|
||||
}
|
||||
}
|
||||
|
||||
/* Use system theme icons instead of Adwaita icons included by theme */
|
||||
:root {
|
||||
--gnome-icon-application-x-addon-symbolic: url("moz-icon://stock/application-x-addon-symbolic?size=dialog") !important;
|
||||
--gnome-icon-applications-engineering-symbolic: url("moz-icon://stock/applications-engineering-symbolic?size=dialog") !important;
|
||||
--gnome-icon-edit-copy-symbolic: url("moz-icon://stock/edit-copy-symbolic?size=dialog") !important;
|
||||
--gnome-icon-edit-cut-symbolic: url("moz-icon://stock/edit-cut-symbolic?size=dialog") !important;
|
||||
--gnome-icon-edit-find-symbolic: url("moz-icon://stock/edit-find-symbolic?size=dialog") !important;
|
||||
--gnome-icon-edit-paste-symbolic: url("moz-icon://stock/edit-paste-symbolic?size=dialog") !important;
|
||||
--gnome-icon-folder-download-symbolic: url("moz-icon://stock/folder-download-symbolic?size=dialog") !important;
|
||||
--gnome-icon-go-next-symbolic: url("moz-icon://stock/go-next-symbolic?size=dialog") !important;
|
||||
--gnome-icon-go-previous-symbolic: url("moz-icon://stock/go-previous-symbolic?size=dialog") !important;
|
||||
--gnome-icon-mail-unread-symbolic: url("moz-icon://stock/mail-unread-symbolic?size=dialog") !important;
|
||||
--gnome-icon-open-menu-symbolic: url("moz-icon://stock/open-menu-symbolic?size=dialog") !important;
|
||||
--gnome-icon-pan-down-symbolic: url("moz-icon://stock/pan-down-symbolic?size=dialog") !important;
|
||||
--gnome-icon-pan-down-symbolic: url("moz-icon://stock/pan-down-symbolic?size=dialog") !important;
|
||||
--gnome-icon-preferences-system-symbolic: url("moz-icon://stock/preferences-system-symbolic?size=dialog") !important;
|
||||
--gnome-icon-preferences-system-time-symbolic: url("moz-icon://stock/preferences-system-time-symbolic?size=dialog") !important;
|
||||
--gnome-icon-printer-symbolic: url("moz-icon://stock/printer-symbolic?size=dialog") !important;
|
||||
--gnome-icon-process-stop-symbolic: url("moz-icon://stock/process-stop-symbolic?size=dialog") !important;
|
||||
--gnome-icon-starred-symbolic: url("moz-icon://stock/starred-symbolic?size=dialog") !important;
|
||||
--gnome-icon-tab-new-symbolic: url("moz-icon://stock/tab-new-symbolic?size=dialog") !important;
|
||||
--gnome-icon-user-home-symbolic: url("moz-icon://stock/user-home-symbolic?size=dialog") !important;
|
||||
--gnome-icon-view-fullscreen-symbolic: url("moz-icon://stock/view-fullscreen-symbolic?size=dialog") !important;
|
||||
--gnome-icon-view-refresh-symbolic: url("moz-icon://stock/view-refresh-symbolic?size=dialog") !important;
|
||||
--gnome-icon-view-restore-symbolic: url("moz-icon://stock/view-restore-symbolic?size=dialog") !important;
|
||||
--gnome-icon-window-close-symbolic: url("moz-icon://stock/window-close-symbolic?size=dialog") !important;
|
||||
--gnome-icon-window-maximize-symbolic: url("moz-icon://stock/window-maximize-symbolic?size=dialog") !important;
|
||||
--gnome-icon-window-minimize-symbolic: url("moz-icon://stock/window-minimize-symbolic?size=dialog") !important;
|
||||
--gnome-icon-window-new-symbolic: url("moz-icon://stock/window-new-symbolic?size=dialog") !important;
|
||||
--gnome-icon-window-restore-symbolic: url("moz-icon://stock/window-restore-symbolic?size=dialog") !important;
|
||||
--gnome-icon-zoom-in-symbolic: url("moz-icon://stock/zoom-in-symbolic?size=dialog") !important;
|
||||
--gnome-icon-zoom-out-symbolic: url("moz-icon://stock/zoom-out-symbolic?size=dialog") !important;
|
||||
}
|
||||
|
||||
/* Apply icon color filter */
|
||||
:root[customtitlebar] .titlebar-buttonbox .titlebar-close .toolbarbutton-icon,
|
||||
.close-icon,
|
||||
#nav-bar #back-button .toolbarbutton-icon,
|
||||
#nav-bar #forward-button .toolbarbutton-icon,
|
||||
#PanelUI-menu-button .toolbarbutton-icon,
|
||||
#new-tab-button .toolbarbutton-icon,
|
||||
#tabs-newtab-button .toolbarbutton-icon,
|
||||
#TabsToolbar #new-tab-button .toolbarbutton-icon,
|
||||
#home-button .toolbarbutton-icon,
|
||||
#preferences-button .toolbarbutton-icon,
|
||||
#fullscreen-button .toolbarbutton-icon,
|
||||
#zoom-out-button .toolbarbutton-icon,
|
||||
#zoom-in-button .toolbarbutton-icon,
|
||||
#developer-button .toolbarbutton-icon,
|
||||
#email-link-button .toolbarbutton-icon,
|
||||
#print-button .toolbarbutton-icon,
|
||||
#add-ons-button .toolbarbutton-icon,
|
||||
#find-button .toolbarbutton-icon,
|
||||
#new-window-button .toolbarbutton-icon,
|
||||
#bookmarks-menu-button .toolbarbutton-icon,
|
||||
#history-panelmenu .toolbarbutton-icon,
|
||||
#alltabs-button .toolbarbutton-icon,
|
||||
#cut-button .toolbarbutton-icon,
|
||||
#copy-button .toolbarbutton-icon,
|
||||
#paste-button .toolbarbutton-icon,
|
||||
#reload-button .toolbarbutton-icon,
|
||||
#context-reload .toolbarbutton-icon,
|
||||
#stop-button .toolbarbutton-icon,
|
||||
#context-stop .toolbarbutton-icon,
|
||||
#downloads-indicator-icon,
|
||||
#downloads-indicator-icon .toolbarbutton-icon,
|
||||
#nav-bar-overflow-button .toolbarbutton-icon,
|
||||
#context-back .menu-iconic-icon,
|
||||
#context-forward .menu-iconic-icon,
|
||||
#appMenu-zoom-controls .toolbarbutton-icon,
|
||||
#unified-extensions-button .toolbarbutton-icon,
|
||||
#identity-icon {
|
||||
filter: var(--gnome-window-icons-hack-filter) !important;
|
||||
}
|
||||
|
||||
/* Fix icon size */
|
||||
toolbar .toolbarbutton-1 > .toolbarbutton-icon,
|
||||
#downloads-indicator-icon {
|
||||
width: 16px !important;
|
||||
height: 16px !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
:root[customtitlebar] #titlebar .titlebar-button .toolbarbutton-icon,
|
||||
:root[customtitlebar][inFullscreen] #window-controls toolbarbutton .toolbarbutton-icon {
|
||||
width: 16px;
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
:root {
|
||||
--gnome-toolbar-padding: 6px;
|
||||
--gnome-toolbar-spacing: 6px;
|
||||
--gnome-button-radius: 9px;
|
||||
--gnome-button-size: 34px;
|
||||
--gnome-entry-radius: var(--gnome-button-radius);
|
||||
--gnome-entry-height: var(--gnome-button-size);
|
||||
--gnome-card-radius: 12px;
|
||||
--gnome-menu-radius: 9px;
|
||||
--gnome-menu-padding: 6px;
|
||||
--gnome-menu-item-padding: 12px;
|
||||
--gnome-popover-radius: calc(var(--gnome-menu-radius) + 6px);
|
||||
--gnome-dialog-radius: 18px; /* Alert dialog */
|
||||
--gnome-dialog-padding: 24px;
|
||||
|
||||
/* Animations */
|
||||
--gnome-animation-time: 300ms;
|
||||
--gnome-tab-animation-time: 200ms;
|
||||
|
||||
@media (prefers-reduced-motion) {
|
||||
--gnome-animation-time: 0ms;
|
||||
--gnome-tab-animation-time: 0ms;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
/* Import theme */
|
||||
@import "theme/gnome-theme.css";
|
||||
|
||||
/* Import a custom stylesheet
|
||||
* Everything you add in your customChrome.css file (it doesn't exist by
|
||||
* default) will be included here and preserved between updates.
|
||||
* You can apply your own custom styles in that file. */
|
||||
@import "customChrome.css"; /**/
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
@import "theme/variables.css";
|
||||
@import "theme/colors/light.css";
|
||||
@import "theme/colors/dark.css";
|
||||
|
||||
@import "theme/pages/newtab.css";
|
||||
@import "theme/pages/privatebrowsing.css";
|
||||
|
||||
@import "theme/parts/video-player.css";
|
||||
|
||||
/* Import a custom stylesheet
|
||||
* Everything you add in your customContent.css file (it doesn't exist by
|
||||
* default) will be included here and preserved between updates.
|
||||
* You can apply your own custom styles in that file. */
|
||||
@import "customContent.css"; /**/
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
@import "firefox-gnome-theme/userChrome.css";
|
||||
|
||||
@import "firefox-gnome-theme/userChrome.css";
|
||||
|
||||
/* This is strongly inspired by ../gtk/gtk.mustache. */
|
||||
:root {
|
||||
/* Palette */
|
||||
--gnome-palette-blue-1: #{{.colors.base0D}};
|
||||
--gnome-palette-blue-2: #{{.colors.base0D}};
|
||||
--gnome-palette-blue-3: #{{.colors.base0D}};
|
||||
--gnome-palette-blue-4: #{{.colors.base0D}};
|
||||
--gnome-palette-blue-5: #{{.colors.base0D}};
|
||||
--gnome-palette-green-1: #{{.colors.base0B}};
|
||||
--gnome-palette-green-2: #{{.colors.base0B}};
|
||||
--gnome-palette-green-3: #{{.colors.base0B}};
|
||||
--gnome-palette-green-4: #{{.colors.base0B}};
|
||||
--gnome-palette-green-5: #{{.colors.base0B}};
|
||||
--gnome-palette-yellow-1: #{{.colors.base0A}};
|
||||
--gnome-palette-yellow-2: #{{.colors.base0A}};
|
||||
--gnome-palette-yellow-3: #{{.colors.base0A}};
|
||||
--gnome-palette-yellow-4: #{{.colors.base0A}};
|
||||
--gnome-palette-yellow-5: #{{.colors.base0A}};
|
||||
--gnome-palette-orange-1: #{{.colors.base09}};
|
||||
--gnome-palette-orange-2: #{{.colors.base09}};
|
||||
--gnome-palette-orange-3: #{{.colors.base09}};
|
||||
--gnome-palette-orange-4: #{{.colors.base09}};
|
||||
--gnome-palette-orange-5: #{{.colors.base09}};
|
||||
--gnome-palette-red-1: #{{.colors.base08}};
|
||||
--gnome-palette-red-2: #{{.colors.base08}};
|
||||
--gnome-palette-red-3: #{{.colors.base08}};
|
||||
--gnome-palette-red-4: #{{.colors.base08}};
|
||||
--gnome-palette-red-5: #{{.colors.base08}};
|
||||
--gnome-palette-purple-1: #{{.colors.base0E}};
|
||||
--gnome-palette-purple-2: #{{.colors.base0E}};
|
||||
--gnome-palette-purple-3: #{{.colors.base0E}};
|
||||
--gnome-palette-purple-4: #{{.colors.base0E}};
|
||||
--gnome-palette-purple-5: #{{.colors.base0E}};
|
||||
--gnome-palette-brown-1: #{{.colors.base0F}};
|
||||
--gnome-palette-brown-2: #{{.colors.base0F}};
|
||||
--gnome-palette-brown-3: #{{.colors.base0F}};
|
||||
--gnome-palette-brown-4: #{{.colors.base0F}};
|
||||
--gnome-palette-brown-5: #{{.colors.base0F}};
|
||||
--gnome-palette-light-1: #{{.colors.base05}};
|
||||
--gnome-palette-light-2: #{{.colors.base05}};
|
||||
--gnome-palette-light-3: #{{.colors.base05}};
|
||||
--gnome-palette-light-4: #{{.colors.base05}};
|
||||
--gnome-palette-light-5: #{{.colors.base05}};
|
||||
--gnome-palette-dark-1: #{{.colors.base05}};
|
||||
--gnome-palette-dark-2: #{{.colors.base05}};
|
||||
--gnome-palette-dark-3: #{{.colors.base05}};
|
||||
--gnome-palette-dark-4: #{{.colors.base05}};
|
||||
--gnome-palette-dark-5: #{{.colors.base05}};
|
||||
|
||||
/* Colors */
|
||||
--gnome-warning-bg: #{{.colors.base0E}};
|
||||
|
||||
/* Wind.colors.ow */
|
||||
--gnome-window-background: #{{.colors.base00}};
|
||||
--gnome-window-color: #{{.colors.base05}};
|
||||
--gnome-view-background: #{{.colors.base00}};
|
||||
--gnome-sidebar-background: #{{.colors.base01}};
|
||||
--gnome-secondary-sidebar-background: #{{.colors.base01}};
|
||||
|
||||
/* Card */
|
||||
--gnome-card-background: #{{.colors.base01}};
|
||||
--gnome-card-shade-color: rgba(0, 0, 0, 0.07);
|
||||
|
||||
/* Menu */
|
||||
--gnome-menu-background: #{{.colors.base01}};
|
||||
|
||||
/* Headerbar */
|
||||
--gnome-headerbar-background: #{{.colors.base01}};
|
||||
--gnome-headerbar-shade-color: rgba(0, 0, 0, 0.07);
|
||||
|
||||
/* Toolbar */
|
||||
--gnome-toolbar-icon-fill: #{{.colors.base05}};
|
||||
|
||||
/* Tabs */
|
||||
--gnome-tabbar-tab-hover-background: color-mix(in srgb, #{{.colors.base01}}, #{{.colors.base02}} 75%);
|
||||
--gnome-tabbar-tab-active-background: #{{.colors.base02}};
|
||||
--gnome-tabbar-tab-active-background-contrast: #{{.colors.base02}};
|
||||
--gnome-tabbar-tab-active-hover-background: color-mix(in srgb, #{{.colors.base02}}, #{{.colors.base03}} 25%);
|
||||
|
||||
/* Private Tabs */
|
||||
--gnome-private-wordmark: #{{.colors.base04}};
|
||||
--gnome-private-in-content-page-background: #{{.colors.base00}};
|
||||
--gnome-private-text-primary-color: #{{.colors.base04}};
|
||||
|
||||
&:-moz-window-inactive {
|
||||
--gnome-tabbar-tab-hover-background: var(--gnome-tabbar-tab-hover-background);
|
||||
--gnome-tabbar-tab-active-background: var(--gnome-tabbar-tab-active-background);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
@import "firefox-gnome-theme/userContent.css";
|
||||
|
||||
|
|
@ -0,0 +1,301 @@
|
|||
/*
|
||||
* https://github.com/rafaelmardojai/firefox-gnome-theme/
|
||||
*/
|
||||
|
||||
// Enable customChrome.css
|
||||
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
|
||||
|
||||
// Set UI density to normal
|
||||
user_pref("browser.uidensity", 0);
|
||||
|
||||
// Enable SVG context-propertes
|
||||
user_pref("svg.context-properties.content.enabled", true);
|
||||
|
||||
// Disable private window dark theme
|
||||
user_pref("browser.theme.dark-private-windows", false);
|
||||
|
||||
// Enable rounded bottom window corners
|
||||
user_pref("widget.gtk.rounded-bottom-corners.enabled", true);
|
||||
|
||||
// UI Settings
|
||||
user_pref("browser.uiCustomization.state", '{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":[],"nav-bar":["back-button","forward-button","stop-reload-button","customizableui-special-spring1","vertical-spacer","urlbar-container","customizableui-special-spring2","downloads-button","unified-extensions-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button"],"vertical-tabs":[],"PersonalToolbar":[]},"seen":["developer-button","screenshot-button"],"dirtyAreaCache":["nav-bar","vertical-tabs","PersonalToolbar","TabsToolbar"],"currentVersion":23,"newElementCount":3}"')
|
||||
|
||||
|
||||
//
|
||||
/* You may copy+paste this file and use it as it is.
|
||||
*
|
||||
* If you make changes to your about:config while the program is running, the
|
||||
* changes will be overwritten by the user.js when the application restarts.
|
||||
*
|
||||
* To make lasting changes to preferences, you will have to edit the user.js.
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
* Betterfox *
|
||||
* "Ad meliora" *
|
||||
* version: 144 *
|
||||
* url: https://github.com/yokoffing/Betterfox *
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: FASTFOX *
|
||||
****************************************************************************/
|
||||
/** GENERAL ***/
|
||||
user_pref("gfx.content.skia-font-cache-size", 32);
|
||||
|
||||
/** GFX ***/
|
||||
user_pref("gfx.canvas.accelerated.cache-items", 32768);
|
||||
user_pref("gfx.canvas.accelerated.cache-size", 4096);
|
||||
user_pref("webgl.max-size", 16384);
|
||||
|
||||
/** DISK CACHE ***/
|
||||
user_pref("browser.cache.disk.enable", false);
|
||||
|
||||
/** MEMORY CACHE ***/
|
||||
user_pref("browser.cache.memory.capacity", 131072);
|
||||
user_pref("browser.cache.memory.max_entry_size", 20480);
|
||||
user_pref("browser.sessionhistory.max_total_viewers", 4);
|
||||
user_pref("browser.sessionstore.max_tabs_undo", 10);
|
||||
|
||||
/** MEDIA CACHE ***/
|
||||
user_pref("media.memory_cache_max_size", 262144);
|
||||
user_pref("media.memory_caches_combined_limit_kb", 1048576);
|
||||
user_pref("media.cache_readahead_limit", 600);
|
||||
user_pref("media.cache_resume_threshold", 300);
|
||||
|
||||
/** IMAGE CACHE ***/
|
||||
user_pref("image.cache.size", 10485760);
|
||||
user_pref("image.mem.decode_bytes_at_a_time", 65536);
|
||||
|
||||
/** NETWORK ***/
|
||||
user_pref("network.http.max-connections", 1800);
|
||||
user_pref("network.http.max-persistent-connections-per-server", 10);
|
||||
user_pref("network.http.max-urgent-start-excessive-connections-per-host", 5);
|
||||
user_pref("network.http.request.max-start-delay", 5);
|
||||
user_pref("network.http.pacing.requests.enabled", false);
|
||||
user_pref("network.dnsCacheEntries", 10000);
|
||||
user_pref("network.dnsCacheExpiration", 3600);
|
||||
user_pref("network.ssl_tokens_cache_capacity", 10240);
|
||||
|
||||
/** SPECULATIVE LOADING ***/
|
||||
user_pref("network.http.speculative-parallel-limit", 0);
|
||||
user_pref("network.dns.disablePrefetch", true);
|
||||
user_pref("network.dns.disablePrefetchFromHTTPS", true);
|
||||
user_pref("browser.urlbar.speculativeConnect.enabled", false);
|
||||
user_pref("browser.places.speculativeConnect.enabled", false);
|
||||
user_pref("network.prefetch-next", false);
|
||||
user_pref("network.predictor.enabled", false);
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: SECUREFOX *
|
||||
****************************************************************************/
|
||||
/** TRACKING PROTECTION ***/
|
||||
user_pref("browser.contentblocking.category", "strict");
|
||||
user_pref("privacy.trackingprotection.allow_list.baseline.enabled", true);
|
||||
user_pref("browser.download.start_downloads_in_tmp_dir", true);
|
||||
user_pref("browser.helperApps.deleteTempFileOnExit", true);
|
||||
user_pref("browser.uitour.enabled", false);
|
||||
user_pref("privacy.globalprivacycontrol.enabled", true);
|
||||
|
||||
/** OCSP & CERTS / HPKP ***/
|
||||
user_pref("security.OCSP.enabled", 0);
|
||||
user_pref("security.csp.reporting.enabled", false);
|
||||
|
||||
/** SSL / TLS ***/
|
||||
user_pref("security.ssl.treat_unsafe_negotiation_as_broken", true);
|
||||
user_pref("browser.xul.error_pages.expert_bad_cert", true);
|
||||
user_pref("security.tls.enable_0rtt_data", false);
|
||||
|
||||
/** DISK AVOIDANCE ***/
|
||||
user_pref("browser.privatebrowsing.forceMediaMemoryCache", true);
|
||||
user_pref("browser.sessionstore.interval", 60000);
|
||||
|
||||
/** SHUTDOWN & SANITIZING ***/
|
||||
user_pref("privacy.history.custom", true);
|
||||
user_pref("browser.privatebrowsing.resetPBM.enabled", true);
|
||||
|
||||
/** SEARCH / URL BAR ***/
|
||||
user_pref("browser.urlbar.trimHttps", true);
|
||||
user_pref("browser.urlbar.untrimOnUserInteraction.featureGate", true);
|
||||
user_pref("browser.search.separatePrivateDefault.ui.enabled", true);
|
||||
user_pref("browser.search.suggest.enabled", false);
|
||||
user_pref("browser.urlbar.quicksuggest.enabled", false);
|
||||
user_pref("browser.urlbar.groupLabels.enabled", false);
|
||||
user_pref("browser.formfill.enable", false);
|
||||
user_pref("network.IDN_show_punycode", true);
|
||||
|
||||
/** PASSWORDS ***/
|
||||
user_pref("signon.formlessCapture.enabled", false);
|
||||
user_pref("signon.privateBrowsingCapture.enabled", false);
|
||||
user_pref("network.auth.subresource-http-auth-allow", 1);
|
||||
user_pref("editor.truncate_user_pastes", false);
|
||||
|
||||
/** MIXED CONTENT + CROSS-SITE ***/
|
||||
user_pref("security.mixed_content.block_display_content", true);
|
||||
user_pref("pdfjs.enableScripting", false);
|
||||
|
||||
/** EXTENSIONS ***/
|
||||
user_pref("extensions.enabledScopes", 5);
|
||||
|
||||
/** HEADERS / REFERERS ***/
|
||||
user_pref("network.http.referer.XOriginTrimmingPolicy", 2);
|
||||
|
||||
/** CONTAINERS ***/
|
||||
user_pref("privacy.userContext.ui.enabled", true);
|
||||
|
||||
/** SAFE BROWSING ***/
|
||||
user_pref("browser.safebrowsing.downloads.remote.enabled", false);
|
||||
|
||||
/** MOZILLA ***/
|
||||
user_pref("permissions.default.desktop-notification", 2);
|
||||
user_pref("permissions.default.geo", 2);
|
||||
user_pref("geo.provider.network.url", "https://beacondb.net/v1/geolocate");
|
||||
user_pref("browser.search.update", false);
|
||||
user_pref("permissions.manager.defaultsUrl", "");
|
||||
user_pref("extensions.getAddons.cache.enabled", false);
|
||||
|
||||
/** TELEMETRY ***/
|
||||
user_pref("datareporting.policy.dataSubmissionEnabled", false);
|
||||
user_pref("datareporting.healthreport.uploadEnabled", false);
|
||||
user_pref("toolkit.telemetry.unified", false);
|
||||
user_pref("toolkit.telemetry.enabled", false);
|
||||
user_pref("toolkit.telemetry.server", "data:,");
|
||||
user_pref("toolkit.telemetry.archive.enabled", false);
|
||||
user_pref("toolkit.telemetry.newProfilePing.enabled", false);
|
||||
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false);
|
||||
user_pref("toolkit.telemetry.updatePing.enabled", false);
|
||||
user_pref("toolkit.telemetry.bhrPing.enabled", false);
|
||||
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false);
|
||||
user_pref("toolkit.telemetry.coverage.opt-out", true);
|
||||
user_pref("toolkit.coverage.opt-out", true);
|
||||
user_pref("toolkit.coverage.endpoint.base", "");
|
||||
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
|
||||
user_pref("browser.newtabpage.activity-stream.telemetry", false);
|
||||
user_pref("datareporting.usage.uploadEnabled", false);
|
||||
|
||||
/** EXPERIMENTS ***/
|
||||
user_pref("app.shield.optoutstudies.enabled", false);
|
||||
user_pref("app.normandy.enabled", false);
|
||||
user_pref("app.normandy.api_url", "");
|
||||
|
||||
/** CRASH REPORTS ***/
|
||||
user_pref("breakpad.reportURL", "");
|
||||
user_pref("browser.tabs.crashReporting.sendReport", false);
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: PESKYFOX *
|
||||
****************************************************************************/
|
||||
/** MOZILLA UI ***/
|
||||
user_pref("browser.privatebrowsing.vpnpromourl", "");
|
||||
user_pref("extensions.getAddons.showPane", false);
|
||||
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
||||
user_pref("browser.discovery.enabled", false);
|
||||
user_pref("browser.shell.checkDefaultBrowser", false);
|
||||
user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false);
|
||||
user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false);
|
||||
user_pref("browser.preferences.moreFromMozilla", false);
|
||||
user_pref("browser.aboutConfig.showWarning", false);
|
||||
user_pref("browser.aboutwelcome.enabled", false);
|
||||
user_pref("browser.profiles.enabled", true);
|
||||
|
||||
/** THEME ADJUSTMENTS ***/
|
||||
user_pref("browser.compactmode.show", true);
|
||||
user_pref("browser.privateWindowSeparation.enabled", false); // WINDOWS
|
||||
|
||||
/** AI ***/
|
||||
user_pref("browser.ml.enable", false);
|
||||
user_pref("browser.ml.chat.enabled", false);
|
||||
user_pref("browser.ml.chat.menu", false);
|
||||
user_pref("browser.tabs.groups.smart.enabled", false);
|
||||
user_pref("browser.ml.linkPreview.enabled", false);
|
||||
|
||||
/** FULLSCREEN NOTICE ***/
|
||||
user_pref("full-screen-api.transition-duration.enter", "0 0");
|
||||
user_pref("full-screen-api.transition-duration.leave", "0 0");
|
||||
user_pref("full-screen-api.warning.timeout", 0);
|
||||
|
||||
/** URL BAR ***/
|
||||
user_pref("browser.urlbar.trending.featureGate", false);
|
||||
|
||||
/** NEW TAB PAGE ***/
|
||||
user_pref("browser.newtabpage.activity-stream.default.sites", "");
|
||||
user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);
|
||||
user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
|
||||
user_pref("browser.newtabpage.activity-stream.showSponsored", false);
|
||||
user_pref("browser.newtabpage.activity-stream.showSponsoredCheckboxes", false);
|
||||
|
||||
/** DOWNLOADS ***/
|
||||
user_pref("browser.download.manager.addToRecentDocs", false);
|
||||
|
||||
/** PDF ***/
|
||||
user_pref("browser.download.open_pdf_attachments_inline", true);
|
||||
|
||||
/** TAB BEHAVIOR ***/
|
||||
user_pref("browser.bookmarks.openInTabClosesMenu", false);
|
||||
user_pref("browser.menu.showViewImageInfo", true);
|
||||
user_pref("findbar.highlightAll", true);
|
||||
user_pref("layout.word_select.eat_space_to_next_word", false);
|
||||
|
||||
/****************************************************************************
|
||||
* START: MY OVERRIDES *
|
||||
****************************************************************************/
|
||||
// visit https://github.com/yokoffing/Betterfox/wiki/Common-Overrides
|
||||
// visit https://github.com/yokoffing/Betterfox/wiki/Optional-Hardening
|
||||
// Enter your personal overrides below this line:
|
||||
|
||||
// PREF: show weather on New Tab page
|
||||
user_pref("browser.newtabpage.activity-stream.showWeather", true);
|
||||
// PREF: restore search engine suggestions (install kagi extension for privacy)
|
||||
user_pref("browser.search.suggest.enabled", true);
|
||||
// PREF: enable container tabs
|
||||
user_pref("privacy.userContext.enabled", true);
|
||||
// PREF: disable Firefox Sync
|
||||
user_pref("identity.fxaccounts.enabled", false);
|
||||
// PREF: disable the Firefox View tour from popping up
|
||||
user_pref("browser.firefox-view.feature-tour", "{\"screen\":\"\",\"complete\":true}");
|
||||
// PREF: disable login manager
|
||||
user_pref("signon.rememberSignons", false);
|
||||
// PREF: disable address and credit card manager
|
||||
user_pref("extensions.formautofill.addresses.enabled", false);
|
||||
user_pref("extensions.formautofill.creditCards.enabled", false);
|
||||
// PREF: do not allow embedded tweets, Instagram, Reddit, and Tiktok posts
|
||||
user_pref("urlclassifier.trackingSkipURLs", "");
|
||||
user_pref("urlclassifier.features.socialtracking.skipURLs", "");
|
||||
// PREF: disable captive portal detection
|
||||
user_pref("captivedetect.canonicalURL", "");
|
||||
user_pref("network.captive-portal-service.enabled", false);
|
||||
user_pref("network.connectivity-service.enabled", false);
|
||||
// PREF: display the installation prompt for all extensions
|
||||
user_pref("extensions.postDownloadThirdPartyPrompt", false);
|
||||
// PREF: enforce certificate pinning
|
||||
// [ERROR] MOZILLA_PKIX_ERROR_KEY_PINNING_FAILURE
|
||||
// 1 = allow user MiTM (such as your antivirus) (default)
|
||||
// 2 = strict
|
||||
user_pref("security.cert_pinning.enforcement_level", 2);
|
||||
// PREF: delete all browsing data on shutdown
|
||||
// Settings → Privacy & Security → Cookies and Site Data → Manage Exceptions
|
||||
user_pref("privacy.sanitize.sanitizeOnShutdown", true);
|
||||
user_pref("privacy.clearOnShutdown_v2.cache", false);
|
||||
user_pref("privacy.clearOnShutdown_v2.cookiesAndStorage", true);
|
||||
user_pref("privacy.clearOnShutdown_v2.browsingHistoryAndDownloads", true);
|
||||
user_pref("privacy.clearOnShutdown_v2.downloads", true); // [HIDDEN]
|
||||
user_pref("privacy.clearOnShutdown_v2.formdata", true);
|
||||
|
||||
// PREF: after crashes or restarts, do not save extra session data
|
||||
// such as form content, scrollbar positions, and POST data
|
||||
user_pref("browser.sessionstore.privacy_level", 2);
|
||||
|
||||
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: SMOOTHFOX *
|
||||
****************************************************************************/
|
||||
// visit https://github.com/yokoffing/Betterfox/blob/main/Smoothfox.js
|
||||
user_pref("general.smoothScroll", true); // DEFAULT
|
||||
user_pref("mousewheel.default.delta_multiplier_y", 250); // 250-400; adjust this number to your liking
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* END: BETTERFOX *
|
||||
****************************************************************************/
|
||||