├── .gitattributes
├── 01.png
├── 02.png
├── LICENSE
├── README.md
├── chrome
├── content
│ ├── common.css
│ └── newtab.css
├── global
│ ├── browser.css
│ ├── colors.css
│ ├── popup.css
│ ├── tree.css
│ └── tweaks.css
├── icons
│ ├── accessibility.svg
│ ├── account-private.svg
│ ├── account.svg
│ ├── add-to-dictionary.svg
│ ├── arrow-down.svg
│ ├── arrow-filled-down.svg
│ ├── arrow-filled-left.svg
│ ├── arrow-filled-right.svg
│ ├── arrow-left.svg
│ ├── arrow-right.svg
│ ├── arrow-up.svg
│ ├── audio-save.svg
│ ├── autoplay-media-blocked.svg
│ ├── autoplay-media.svg
│ ├── back.svg
│ ├── bookmark-hollow.svg
│ ├── bookmark-star-on-tray.svg
│ ├── bookmark.svg
│ ├── camera-blocked.svg
│ ├── camera.svg
│ ├── canvas-blocked.svg
│ ├── canvas.svg
│ ├── checkmark.svg
│ ├── chevron.svg
│ ├── close-9px.svg
│ ├── close.svg
│ ├── container-tab.svg
│ ├── customize.svg
│ ├── desktop-notification-blocked.svg
│ ├── desktop-notification.svg
│ ├── developer.svg
│ ├── downloads.svg
│ ├── duplicate-tab.svg
│ ├── edit-copy-without-tracking.svg
│ ├── edit-copy.svg
│ ├── edit-cut.svg
│ ├── edit-delete.svg
│ ├── edit-paste.svg
│ ├── edit-redo.svg
│ ├── edit-select-all.svg
│ ├── edit-undo.svg
│ ├── edit.svg
│ ├── extension-blocked.svg
│ ├── extension.svg
│ ├── firefox-view.svg
│ ├── firefox.svg
│ ├── folder.svg
│ ├── folderDarkOutline.svg
│ ├── folderFluentYellow.svg
│ ├── forget.svg
│ ├── forward.svg
│ ├── fullscreen-exit.svg
│ ├── fullscreen.svg
│ ├── geo-blocked.svg
│ ├── geo.svg
│ ├── help.svg
│ ├── history.svg
│ ├── home.svg
│ ├── icons.css
│ ├── image-copy.svg
│ ├── image-open.svg
│ ├── image-save.svg
│ ├── info.svg
│ ├── inspect.svg
│ ├── library.svg
│ ├── link.svg
│ ├── mail.svg
│ ├── manage.svg
│ ├── media-loop.svg
│ ├── media-mute.svg
│ ├── media-pause.svg
│ ├── media-pip.svg
│ ├── media-play.svg
│ ├── media-speed.svg
│ ├── media-unmute.svg
│ ├── menu.svg
│ ├── microphone-blocked.svg
│ ├── microphone.svg
│ ├── midi.svg
│ ├── move-tab.svg
│ ├── new-tab-image.svg
│ ├── new-tab.svg
│ ├── open.svg
│ ├── page-portrait.svg
│ ├── passwords.svg
│ ├── paste-and-go.svg
│ ├── permissions.svg
│ ├── persistent-storage-blocked.svg
│ ├── persistent-storage.svg
│ ├── pin.svg
│ ├── plus.svg
│ ├── pocket-outline.svg
│ ├── popup.svg
│ ├── print.svg
│ ├── private-window.svg
│ ├── privateBrowsing.svg
│ ├── reader-mode.svg
│ ├── reload-to-stop.svg
│ ├── reload.svg
│ ├── report.svg
│ ├── save.svg
│ ├── screen-blocked.svg
│ ├── screen.svg
│ ├── screenshot.svg
│ ├── search-glass.svg
│ ├── search-page.svg
│ ├── security-broken.svg
│ ├── security-warning.svg
│ ├── security.svg
│ ├── send-to-device.svg
│ ├── settings.svg
│ ├── share.svg
│ ├── sidebars-right.svg
│ ├── sidebars.svg
│ ├── source-code.svg
│ ├── stop-to-reload.svg
│ ├── tab-audio-blocked-small.svg
│ ├── tab-audio-muted-small.svg
│ ├── tab-audio-playing-small.svg
│ ├── tab.svg
│ ├── tag.svg
│ ├── tool-profiler.svg
│ ├── tracking-protection.svg
│ ├── translate.svg
│ ├── video-open.svg
│ ├── video-save.svg
│ ├── win11-close-dark.svg
│ ├── win11-close.svg
│ ├── win11-maximize.svg
│ ├── win11-minimize.svg
│ ├── win11-restore.svg
│ ├── window.svg
│ ├── xr-blocked.svg
│ ├── xr.svg
│ └── zoom-out.svg
├── toolbar
│ ├── findbar.css
│ ├── navbar.css
│ ├── personalbar.css
│ ├── tabbar.css
│ └── urlbar.css
├── tweaks
│ └── hide-tabs-bar.css
├── userChrome.css
└── userContent.css
├── image-1.png
├── image-2.png
├── image-3.png
├── image-4.png
├── image-5.png
├── image-6.png
├── image.png
├── sidebery.css
└── user.js
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VincentAzz/FirefoxCustomCSSConfig/4df3bfa5d380223ca41eb85b55e7b273fba04a00/01.png
--------------------------------------------------------------------------------
/02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VincentAzz/FirefoxCustomCSSConfig/4df3bfa5d380223ca41eb85b55e7b273fba04a00/02.png
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 0xamiiich
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # FirefoxCustomCSSConfig
2 |
3 | [](https://badges.toozhao.com/stats/01HPXGQP669GNMEDM0XV87B2TX "Get your own page views count badge on badges.toozhao.com")
4 |
5 | ## 🤔 这是什么
6 | 厌倦了Firefox的传统主题和默认界面?
7 |
8 | 这是一个使用 [userChrome.css](https://support.mozilla.org/en-US/kb/contributors-guide-firefox-advanced-customization) 对 Firefox 进行高度自定义的主题
9 |
10 | 基于 [EdgeFrFox UserChrome Theme](https://github.com/bmFtZQ/edge-frfox/) 和 [Sidebery](https://addons.mozilla.org/firefox/addon/sidebery/) 进行修改
11 |
12 | 使用 userChrome 类型的主题不会影响你的用户数据
13 |
14 | 截图预览:
15 |
16 | 
17 | 
18 | 
19 |
20 |
21 |
22 | ## 🏷️ 前置版本
23 |
24 | 仅在Windows下经过测试
25 |
26 | Firefox 120+ 稳定版
27 |
28 | 或 除 Floorp 外任何基于 Firefox 120+ Fork 的浏览器 - Floorp使用的内建样式的userChrome会导致冲突
29 |
30 |
31 |
32 | 🚨 上述版本在Linux和macOS下未经充分测试
33 |
34 | 🚨 Firefox Beta/Nightly 下可能会导致意想不到的问题
35 |
36 |
37 |
38 |
39 | ## 🛠️ 所需工具
40 | - 插件
41 | - Firefox插件: [Sidebery](https://addons.mozilla.org/firefox/addon/sidebery/) - 为Firefox增加垂直标签栏,并易于在垂直/水平之间切换
42 | - Firefox插件(可选): [Firefox Color](https://addons.mozilla.org/zh-CN/firefox/addon/firefox-color) - 自定义主题色彩
43 |
44 | - 主题 - 你也可以使用任何你喜欢的主题
45 | - Nord by Luca Sander: [Nord](https://addons.mozilla.org/zh-CN/firefox/addon/nord123/) - 图中所使用的主题
46 | - 一个基于Firefox Color的模仿VSCode默认主题现代深色的配色方案[VSCode Modern Dark](https://color.firefox.com/?theme=XQAAAALDAQAAAAAAAABBqYhm849SCia-yK6EGccwS-xMDPr3WmqUaaq-qy5QgqeHG4K15Qd2-fIkmgjiM6AAxM3X9F70ZoGsfXBn8NHNS5chMvkRB4ubMyj96LA5TsM9yBeD-fLr7M3wKLiyQYXJunBpGdorYm9z3wHMzauk38U4_tq7SUG4zgp1J7ZKKvcbF9coql_OeBAGVg3QFSC8DOEBKwUE1j9N55GWEThkzdsK6HxgUw13CHuLb-5ZPPeYrIiNLb1prL0tKYG47pZOHaPWA_tuQT1eWgwa_m2PNx-ivKCbwSfD9KXfwJZpmn3FAYZCnn__j927-A) - 图中所使用的第二套主题
47 |
48 | - 其他
49 | - 文本编辑器,例如VSCode,方便你用来改动CSS样式,如果你只想使用记事本也没关系
50 |
51 |
52 |
53 | ## 📦 包含哪些内容
54 | ### 对EdgeFrFox Theme的改动
55 | chrome目录和user.js是EdgeFrFox Theme的核心文件,在此基础上进行了一些改动
56 | - 增加圆角和边缘padding,修改按钮及URL地址栏圆角
57 | - 调整侧栏样式以适配Sidebery垂直标签页,去除Firefox原有侧栏顶部的菜单栏
58 | - 增加书签栏文件夹样式
59 | - 一些字体大小和图标按钮间距调整
60 |
61 | ### Sidebery的样式配置项
62 | - sidebery.css是Sidebery的CSS样式配置项
63 |
64 |
65 |
66 | ## 📖 如何使用
67 | 1. 安装上述所需工具中你想要的插件、工具和主题。
68 | 2. 在Firefox中打开about:support,点击下方'配置文件夹'右侧的'打开文件夹',在资源管理器中打开Firefox配置文件夹
69 | 3. 点击本页上方的Code按钮,选择Download ZIP下载仓库中的全部文件,或者以你喜欢的方式克隆仓库到本地
70 | 4. 解压ZIP,复制其中的chrome文件夹(整个文件夹)和user.js文件到打开的Firefox配置文件夹中
71 | 5. 关闭全部Firefox窗口,重新打开Firefox,这时部分主题应该已经被正确启用
72 | 6. 打开about:config,对如下配置项进行新建并启用
73 | - 新建并启用配置项: 键入完整的配置项名称,选择布尔,点击右侧加号即可
74 | - 禁用配置项: 点击切换按钮,将配置项切换到false,或点击删除按钮,删除配置项
75 | - 仅在安装了Sidebery垂直标签页后,启用uc.tweak.hide-tabs-bar隐藏横向标签页才会生效。通过定制工具栏,将侧栏按钮摆放在工具栏上,可以实现启用/禁用垂直标签页(禁用时使用默认的横向标签页)
76 | - 如果你想了解每个配置项的详细含义,或启用本主题中未使用的某些配置项,请参考 [EdgeFrFox UserChrome Theme Tweaks](https://github.com/bmFtZQ/edge-frfox?tab=readme-ov-file#tweaks)
77 |
78 | |需启用的配置项|布尔值|用途|
79 | |-|-|-|
80 | |uc.tweak.disable-drag-space |true|去除隐藏横向标签页时顶部的冗余空间|
81 | |uc.tweak.floating-tabs |true|横向标签页的浮动样式|
82 | |uc.tweak.hide-forward-button |true|前进按钮不可用时将其隐藏|
83 | |uc.tweak.hide-tabs-bar |true|隐藏默认的横向标签页,以配合Sidebery使用|
84 | |uc.tweak.remove-tab-separators |true|去除横向标签页间的分隔符|
85 | |uc.tweak.rounded-corners |true|启用圆角|
86 | |uc.tweak.show-tab-close-button-on-hover |true|仅在鼠标移动到标签页上方时才显示关闭按钮|
87 |
88 |
89 |
90 | 
91 |
92 |
93 |
94 | 7. 用文本编辑器打开sidebery.css,复制全部内容到垂直标签页Sidebery的设置-样式编辑器中右侧的文本框
95 | 
96 |
97 | ### 🎉 现在,主题配置已经完成,效果应该和截图中的基本一致
98 |
99 |
100 |
101 | ## 📖 如何禁用
102 | 1. 打开Firefox配置文件夹
103 | 2. 删掉配置文件夹中的chrome目录和user.js
104 | 3. 重启Firefox即可还原
105 |
106 |
107 |
108 | ## ⚗️ 样式修改
109 | 如果你不喜欢我的主题样式,或者喜欢折腾,你也可以动手修改。下面是一些可能涉及到的样式调整的位置
110 |
111 | #### 1. Sidebery部分关键样式
112 | Sidebery设置-样式编辑器-侧边栏-General
113 |
114 | |属性名|单位|用途|
115 | |-|-|-|
116 | |Border radius|px|标签页和按钮圆角|
117 | |Margin|px|按钮及标签页之间的间隔|
118 | |Toolbar background|HEX色值|Sidebery工具栏背景色|
119 | |Frame background|HEX色值|整个Sidebery的背景色|
120 |
121 |
122 |
123 | #### 2. 窗口四周边距、侧栏和页面四周的圆角
124 | chrome/global/browser.css
125 |
126 | |行数|属性名|单位|用途|
127 | |-|-|-|-|
128 | |46|--uc-tweak-rounded-corners-padding|px|窗口四周边距|
129 | |47|--uc-tweak-rounded-corners-radius|px|侧栏、页面四周圆角|
130 |
131 |
132 |
133 | #### 3. URL地址栏圆角
134 | chrome/toolbar/urlbar.css
135 |
136 | |行数|属性名|单位|用途|
137 | |-|-|-|-|
138 | |51|border-radius|px|地址栏圆角|
139 |
140 |
141 |
142 | #### 4. 去掉窗口最小化按钮左侧的冗余区域
143 |
144 | 这个区域可以用来拖动窗口,如果不喜欢可以去掉或更改其宽度
145 |
146 | 在chrome/userChrome.css中添加
147 | ```
148 | :root {
149 | --uc-titlebar-drag-space: 0px !important;
150 | }
151 | ```
152 |
153 |
154 |
155 | #### 5. 隐藏地址栏上的插件标识
156 | ||→||
157 | |-|-|-|
158 |
159 | 在chrome/userChrome.css中添加
160 | ```
161 | /* 隐藏urlbar上的插件标识符 */
162 | #identity-box.extensionPage #identity-icon-label {
163 | display: none !important;
164 | }
165 |
166 | #identity-icon-box {
167 | background: none !important;
168 | }
169 | ```
170 |
171 |
172 |
173 | #### 6. 书签栏文件夹颜色调整
174 | chrome/icon目录中含有3种样式的文件夹图标,默认使用浅色线条(适合暗色主题)图标
175 |
176 | |默认使用|文件名|样式|图标|
177 | |-|-|-|-|
178 | |✅|folder.svg (folderLightOutline.svg)|浅色线条 (适合暗色主题)||
179 | ||folderDarkOutline.svg|暗色线条 (适合浅色主题)||
180 | ||folderFluentYellow.svg|FluentUI 黄色||
181 |
182 | 如需更改文件夹样式以适配主题,请将原有的folder.svg更改为其他名称,并将要启用的文件名称更改为folder.svg
183 |
184 |
185 | ...还有很多,用到再补🫡
186 |
187 |
188 |
189 | ## 🌎 有用的链接
190 | [EdgeFrFox UserChrome Theme](https://github.com/bmFtZQ/edge-frfox/)
191 |
192 | [FirefoxCSS Store](https://firefoxcss-store.github.io/):Firefox的userChromeCSS主题集合,你可以在这里找到很多优秀的主题来尝试
193 |
194 | [Reddit r/FirefoxCSS](https://www.reddit.com/r/FirefoxCSS/s-store.github.io/):Reddit上的FirefoxCSS论坛
195 |
196 | [Browser Toolbox](https://firefox-source-docs.mozilla.org/devtools-user/browser_toolbox/index.html):Firefox浏览器调试工具,可以方便的探测浏览器自身的UI元素和CSS样式
197 |
198 |
199 |
200 | ## 🥰 其他信息
201 |
202 | 截图中Firefox所使用的字体和图标:
203 |
204 | - 网页字体:OneUI Sans From OneUI 6
205 | - 系统字体:[更纱黑体SC UI](https://github.com/be5invis/Sarasa-Gothic)
206 | - 代码等宽字体:[Jetbrains Mono](https://www.jetbrains.com/lp/mono/)
207 | - 图标库:[Fluent UI System Icons](https://github.com/microsoft/fluentui-system-icons)
208 |
209 |
210 | ---
211 |
--------------------------------------------------------------------------------
/chrome/content/common.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - content/common.css */
2 |
3 | /* colours */
4 | @-moz-document url-prefix(about:) {
5 | :root {
6 | --in-content-page-color: light-dark(#252525, #fff) !important;
7 | --in-content-page-background: light-dark(#f7f7f7, #252525) !important;
8 | --in-content-deemphasized-text: light-dark(#666, #bbb) !important;
9 | --in-content-box-background: light-dark(#fff, #333) !important;
10 | --in-content-box-background-odd: light-dark(rgb(0 0 0 / .05), rgb(255 255 255 / .05)) !important;
11 | --in-content-box-info-background: light-dark(#f7f7f7, rgb(255 255 255 / 0.15)) !important;
12 | --in-content-icon-color: light-dark(#666, #fff) !important;
13 | --in-content-accent-color: light-dark(#006CBE, #75B6E8) !important;
14 | --in-content-accent-color-active: light-dark(#1683D8, #4C98D1) !important;
15 | --in-content-border-hover: light-dark(rgb(0 0 0 / .5), rgb(255 255 255 / .3)) !important;
16 | --in-content-border-invalid: var(--red-50) !important;
17 | --in-content-border-color: light-dark(#bebebe, rgb(255 255 255 / .2)) !important;
18 | --in-content-error-text-color: light-dark(#FF848A, #FF9AA2) !important;
19 | --in-content-link-color: light-dark(#0078D4, #75B6E8) !important;
20 | --in-content-link-color-hover: light-dark(#006CBE, #63ADE5) !important;
21 | --in-content-link-color-active: light-dark(#0749AC, #4C98D1) !important;
22 | --in-content-link-color-visited: light-dark(#0078D4, #75B6E8) !important;
23 | --link-color: var(--in-content-link-color) !important;
24 | --link-color-hover: var(--in-content-link-color-hover) !important;
25 | --link-color-active: var(--in-content-link-color-active) !important;
26 | --link-color-visited: var(--in-content-link-color-visited) !important;
27 | --in-content-button-text-color: var(--in-content-text-color) !important;
28 | --in-content-button-text-color-hover: var(--in-content-text-color) !important;
29 | --in-content-button-text-color-active: var(--in-content-button-text-color-hover) !important;
30 | --in-content-button-background: light-dark(#EDEDED, #3B3B3B) !important;
31 | --in-content-button-background-hover: light-dark(#e5e5e5, #545454) !important;
32 | --in-content-button-background-active: light-dark(#d5d5d5, #606060) !important;
33 | --in-content-primary-button-text-color: light-dark(#fff, #fff) !important;
34 | --in-content-primary-button-background: light-dark(#0061e0, #006CBE) !important;
35 | --in-content-primary-button-background-hover: light-dark(#0250bb, #0078D4) !important;
36 | --in-content-primary-button-background-active: light-dark(#053e94, #005CA3) !important;
37 | --color-accent-primary: light-dark(#0078D4, #006CBE) !important;
38 | --color-accent-primary-hover: light-dark(#006CBE, #0078D4) !important;
39 | --color-accent-primary-active: light-dark(#0749AC, #005CA3) !important;
40 | --in-content-danger-button-background: light-dark(#DF4951, #E12424) !important;
41 | --in-content-danger-button-background-hover: light-dark(#EA656C, #F94343) !important;
42 | --in-content-danger-button-background-active: light-dark(#BB353C, #AA1E1E) !important;
43 | --in-content-focus-outline-color: light-dark(rgb(0 85 215 / .5), #63ADE5) !important;
44 | --focus-outline-color: var(--in-content-focus-outline-color) !important;
45 | --in-content-table-background: light-dark(#f7f7f7, #252525) !important;
46 | --in-content-text-color: var(--in-content-page-color) !important;
47 | --border-interactive-color: light-dark(#929292, #858585) !important;
48 | scrollbar-color:
49 | light-dark(rgb(37 37 37 / .4), rgb(255 255 255 / .4))
50 | light-dark(#f7f7f7, #252525) !important;
51 | }
52 |
53 | ::selection {
54 | background-color: light-dark(#0078D4, #93B8E7);
55 | color: light-dark(#fff, #000);
56 | }
57 | }
58 |
59 | /* preferences */
60 | @-moz-document url-prefix(about:preferences),
61 | url-prefix(about:addons) {
62 | .category[selected] {
63 | position: relative !important;
64 | border-radius: 4px !important;
65 | }
66 |
67 | .category[selected]:not(:hover, :active) {
68 | background-color: var(--in-content-button-background) !important;
69 | }
70 |
71 | .category[selected]::before {
72 | content: "";
73 | position: absolute;
74 | inset-block: 0;
75 | margin-block: auto;
76 | height: 24px;
77 | width: 3px;
78 | left: 2px;
79 | background-color: var(--in-content-accent-color);
80 | border-radius: 3px;
81 | }
82 |
83 | button.tab-button:hover {
84 | border-block-color: transparent var(--in-content-box-border-color) !important;
85 | }
86 |
87 | button.tab-button[selected],
88 | button.tab-button[selected]:hover {
89 | border-block-color: transparent currentColor !important;
90 | }
91 |
92 | .toggle-button {
93 | --toggle-dot-margin: 4px !important;
94 | --toggle-width: 40px !important;
95 | --toggle-height: 20px !important;
96 | --toggle-background-color: transparent !important;
97 | --toggle-dot-background-color: var(--in-content-page-color) !important;
98 | --toggle-dot-background-color-on-pressed: #fff !important;
99 | --toggle-dot-transform-x: calc(var(--toggle-width) - 2 * var(--toggle-dot-margin) - 2 * var(--toggle-border-width) - var(--toggle-dot-width)) !important;
100 | }
101 | }
102 |
103 | /* fix page flashes when loading some websites */
104 | @-moz-document url(about:blank) {
105 | body {
106 | background: var(--in-content-page-background);
107 | color: var(--in-content-page-color);
108 | }
109 | }
110 |
--------------------------------------------------------------------------------
/chrome/content/newtab.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - content/newtab.css */
2 |
3 | /* colours */
4 | @-moz-document url-prefix("about:newtab"),
5 | url-prefix("about:home"),
6 | url-prefix("about:firefoxview") {
7 | :root:not([lwt-newtab], [lwt-newtab-brighttext]) {
8 | --newtab-background-color: #F7F7F7 !important;
9 | --newtab-background-color-secondary: #fff !important;
10 | --newtab-text-primary-color: #252525 !important;
11 | --newtab-primary-action-background: #0078D4 !important;
12 | --newtab-text-secondary-color: color-mix(in srgb, var(--newtab-text-primary-color) 80%, transparent) !important;
13 | --newtab-element-hover-color: color-mix(in srgb, var(--newtab-background-color) 95%, #000) !important;
14 | --newtab-element-active-color: color-mix(in srgb, var(--newtab-background-color) 90%, #000) !important;
15 | --newtab-element-secondary-color: color-mix(in srgb, currentColor 5%, transparent) !important;
16 | --newtab-element-secondary-hover-color: color-mix(in srgb, currentColor 12%, transparent) !important;
17 | --newtab-element-secondary-active-color: color-mix(in srgb, currentColor 25%, transparent) !important;
18 | --newtab-primary-element-hover-color: color-mix(in srgb, var(--newtab-primary-action-background) 90%, #000) !important;
19 | --newtab-primary-element-active-color: color-mix(in srgb, var(--newtab-primary-action-background) 80%, #000) !important;
20 | --newtab-primary-element-text-color: #fff !important;
21 | --newtab-primary-action-background-dimmed: color-mix(in srgb, var(--newtab-primary-action-background) 25%, transparent) !important;
22 | --newtab-border-color: color-mix(in srgb, var(--newtab-background-color) 75%, #000) !important;
23 | --newtab-wordmark-color: #737373 !important;
24 | --newtab-status-success: #50B080 !important;
25 | --newtab-status-error: #FF848A !important;
26 | --newtab-inner-box-shadow-color: rgb(0 0 0 / .1) !important;
27 | --newtab-overlay-color: color-mix(in srgb, var(--newtab-background-color) 85%, transparent) !important;
28 | --newtab-text-emphasis-background: #FFED32 !important;
29 | --newtab-text-emphasis-text-color: #000 !important;
30 | --newtab-textbox-focus-color: var(--newtab-primary-action-background) !important;
31 | --newtab-textbox-focus-boxshadow: 0 0 0 1px var(--newtab-primary-action-background), 0 0 0 4px rgba(var(--newtab-primary-action-background), 0.3) !important;
32 | --newtab-button-secondary-color: inherit !important;
33 | }
34 |
35 | :root:not([style*="color"])[lwt-newtab-brighttext] {
36 | --newtab-background-color: #252525 !important;
37 | --newtab-background-color-secondary: #4A4A4A !important;
38 | --newtab-text-primary-color: #fff !important;
39 | --newtab-primary-action-background: #75B6E8 !important;
40 | --newtab-element-hover-color: color-mix(in srgb, var(--newtab-background-color) 95%, #FFF) !important;
41 | --newtab-element-active-color: color-mix(in srgb, var(--newtab-background-color) 90%, #FFF) !important;
42 | --newtab-element-secondary-color: color-mix(in srgb, currentColor 10%, transparent) !important;
43 | --newtab-element-secondary-hover-color: color-mix(in srgb, currentColor 17%, transparent) !important;
44 | --newtab-element-secondary-active-color: color-mix(in srgb, currentColor 30%, transparent) !important;
45 | --newtab-border-color: color-mix(in srgb, var(--newtab-background-color) 75%, #FFF) !important;
46 | --newtab-primary-element-text-color: #252525 !important;
47 | --newtab-wordmark-color: #fff !important;
48 | --newtab-status-success: #50B080 !important;
49 | }
50 |
51 | /* Custom GTK colours. */
52 | @media (-moz-gtk-csd-available) {
53 | :root:not([lwt-newtab]):not([style*="color"]) {
54 | /* Colour adjusted for readability. */
55 | --uc-accent-adjusted: light-dark(
56 | color-mix(in oklch, AccentColor 92%, black),
57 | color-mix(in oklch, AccentColor 60%, white)
58 | );
59 | --newtab-background-color: light-dark(-moz-dialog, color-mix(in srgb, -moz-dialog 82%, black)) !important;
60 | --newtab-background-color-secondary: light-dark(Field, color-mix(in srgb, -moz-dialog 86%, white)) !important;
61 | --newtab-text-primary-color: -moz-dialogtext !important;
62 | --newtab-wordmark-color: light-dark(color-mix(in srgb, -moz-dialogtext 65%, transparent), -moz-dialogtext) !important;
63 | --newtab-primary-action-background: var(--uc-accent-adjusted) !important;
64 | }
65 | }
66 |
67 | /* Adjustments for themes. */
68 | :root[style*="--newtab-background-color"] {
69 | /* Make the Firefox logo workmark follow text colour. */
70 | --newtab-wordmark-color: color-mix(in srgb, var(--newtab-text-primary-color) 60%, var(--newtab-background-color)) !important;
71 |
72 | /* If there is no secondary background, create one from other colours. */
73 | &:not([style*="--newtab-background-color-secondary"]) {
74 | --newtab-background-color-secondary: color-mix(in srgb, var(--newtab-background-color) 15%, white) !important;
75 | }
76 |
77 | /* Dark adjustments for themes. */
78 | &[lwt-newtab-brighttext] {
79 | /* Make the Firefox logo workmark follow text colour. */
80 | --newtab-wordmark-color: var(--newtab-text-primary-color) !important;
81 |
82 | /* If there is no secondary background, create one from other colours. */
83 | &:not([style*="--newtab-background-color-secondary"]) {
84 | --newtab-background-color-secondary: color-mix(in srgb, var(--newtab-text-primary-color) 15%, var(--newtab-background-color)) !important;
85 | }
86 | }
87 | }
88 | }
89 |
90 | @-moz-document url-prefix("about:newtab"),
91 | url-prefix("about:home") {
92 | /* Enforce system font selection. */
93 | :where(body) {
94 | font-family: system-ui !important;
95 | }
96 |
97 | /* hide pin */
98 | .icon.icon-pin-small {
99 | display: none !important;
100 | }
101 |
102 | /* unpinned sites have lower opacity title */
103 | .top-site-button .title:not(.pinned) {
104 | opacity: 0.7 !important;
105 | }
106 |
107 | /* search bar */
108 | .search-wrapper .search-inner-wrapper {
109 | min-height: 44px !important;
110 | }
111 |
112 | .search-handoff-button {
113 | border-radius: 99px !important;
114 | background-position: 12px !important;
115 | padding-inline-start: 48px !important;
116 | white-space: nowrap !important;
117 | text-overflow: ellipsis !important;
118 | --elevation: 4;
119 | box-shadow: 0 0 calc((var(--elevation) * 0.225px) + 2px) rgb(0 0 0 / .11), 0 calc(var(--elevation) * 0.4px) calc((var(--elevation) * 0.9px)) rgb(0 0 0 / .13) !important;
120 | }
121 |
122 | .search-handoff-button:hover {
123 | --elevation: 6;
124 | }
125 |
126 | .search-wrapper.fake-focus:not(.search.disabled) .search-handoff-button {
127 | border-color: transparent !important;
128 | outline: 2px solid var(--newtab-primary-action-background) !important;
129 | outline-offset: -1px !important;
130 | }
131 |
132 | .search-handoff-button .fake-caret {
133 | inset-inline-start: 48px !important;
134 | top: 13px !important;
135 | }
136 |
137 | .search-disabled .search-handoff-button {
138 | opacity: 0 !important;
139 | }
140 |
141 | .icon-settings {
142 | background-image: url("../icons/settings.svg") !important;
143 | }
144 |
145 | /* top sites */
146 | .top-site-outer .tile {
147 | border-radius: 12px !important;
148 | height: 44px !important;
149 | width: 44px !important;
150 | box-shadow: none !important;
151 | }
152 |
153 | .top-site-outer .tile .icon-wrapper {
154 | border-radius: 4px !important;
155 | width: 24px !important;
156 | height: 24px !important;
157 | }
158 |
159 | .top-site-outer .default-icon,
160 | .top-site-outer .search-topsite {
161 | background-size: 16px !important;
162 | height: 24px !important;
163 | width: 24px !important;
164 | }
165 |
166 | .top-site-outer .tile .icon-wrapper.letter-fallback::before {
167 | font-size: 32px !important;
168 | }
169 |
170 | /* card */
171 | .card-outer,
172 | .card-outer .card,
173 | .ds-card-grid.ds-card-grid-border .ds-card:not(.placeholder) {
174 | border-radius: 6px !important;
175 | }
176 |
177 | .card-outer .card,
178 | .ds-card-grid.ds-card-grid-border .ds-card:not(.placeholder) {
179 | box-shadow: 0 1px 4px rgb(0 0 0 / .3) !important;
180 | }
181 |
182 | .card-outer .card-preview-image-outer,
183 | .ds-card-grid.ds-card-grid-border .ds-card:not(.placeholder) .img-wrapper .img img {
184 | border-radius: 6px 6px 0 0 !important
185 | }
186 |
187 | .fake-textbox {
188 | overflow: hidden !important;
189 | text-overflow: ellipsis !important;
190 | }
191 |
192 | .outer-wrapper.only-search {
193 | display: flex !important;
194 | padding: 30px !important;
195 | }
196 |
197 | @media (-moz-bool-pref: "uc.tweak.hide-newtab-logo") {
198 | .logo-and-wordmark {
199 | display: none !important;
200 | }
201 |
202 | .outer-wrapper:not(.fixed-search) .search-wrapper {
203 | padding-top: 0 !important;
204 | }
205 | }
206 | }
207 |
208 | /* private browsing newtab */
209 | @-moz-document url-prefix(about:privatebrowsing) {
210 | :root {
211 | --uc-wordmark-color: light-dark(#737373, #fff);
212 | --uc-background-color-secondary: light-dark(#fff, #4a4a4a);
213 |
214 | @media (-moz-bool-pref: "browser.theme.dark-private-windows") {
215 | color-scheme: dark !important;
216 | }
217 | }
218 |
219 | /* Custom GTK colours. */
220 | @media (-moz-gtk-csd-available) {
221 | :root:not([lwt-newtab]):not([style*="color"]) {
222 | /* Colour adjusted for readability. */
223 | --uc-accent-adjusted: light-dark(
224 | color-mix(in oklch, AccentColor 92%, black),
225 | color-mix(in oklch, AccentColor 60%, white)
226 | );
227 |
228 | --in-content-page-background: light-dark(-moz-dialog, color-mix(in srgb, -moz-dialog 82%, black)) !important;
229 | --uc-background-color-secondary: light-dark(Field, color-mix(in srgb, -moz-dialog 86%, white)) !important;
230 | --in-content-page-color: -moz-dialogtext !important;
231 | --in-content-focus-outline-color: var(--uc-accent-adjusted) !important;
232 | }
233 | }
234 |
235 | .search-inner-wrapper {
236 | height: 44px !important;
237 | }
238 |
239 | .search-handoff-button,
240 | .search-handoff-button:active,
241 | .search-handoff-button:enabled:hover:active {
242 | background-color: var(--uc-background-color-secondary) !important;
243 | background-size: 24px;
244 | border: 0 !important;
245 | border-radius: 99px !important;
246 | padding-inline-start: 48px !important;
247 | --elevation: 4;
248 | box-shadow: 0 0 calc((var(--elevation) * 0.225px) + 2px) rgb(0 0 0 / .11), 0 calc(var(--elevation) * 0.4px) calc((var(--elevation) * 0.9px)) rgb(0 0 0 / .13) !important;
249 | }
250 |
251 | .search-handoff-button:hover {
252 | --elevation: 6;
253 | }
254 |
255 | .search-handoff-button.focused:not(.disabled) {
256 | box-shadow: none !important;
257 | outline: 2px solid var(--in-content-focus-outline-color) !important;
258 | outline-offset: -1px !important;
259 | }
260 |
261 | .search-handoff-button.disabled {
262 | opacity: 0 !important;
263 | }
264 |
265 | .fake-textbox {
266 | color: var(--in-content-page-color) !important;
267 | }
268 |
269 | .wordmark {
270 | fill: var(--uc-wordmark-color) !important;
271 | }
272 |
273 | .info {
274 | background-color: var(--uc-background-color-secondary) !important;
275 | background-image: none !important;
276 | position: relative !important;
277 | }
278 |
279 | .info::before {
280 | content: "";
281 | position: absolute;
282 | left: 32px;
283 | top: 20px;
284 | height: 32px;
285 | aspect-ratio: 1 / 1;
286 | background: center / contain url("../icons/account-private.svg");
287 | border-radius: 99px;
288 | }
289 | }
290 |
291 | @media (-moz-bool-pref: "uc.tweak.newtab-background") {
292 | @-moz-document url(about:newtab),
293 | url(about:home),
294 | url(about:privatebrowsing),
295 | url-prefix("about:firefoxview") {
296 | :root body {
297 | /* Specify both jpg and png file extensions, but jpg images will always
298 | * have a higher priority.
299 | */
300 | --bg-0: url(../background-0.jpg), url(../background-0.png);
301 | --bg-1: url(../background-1.jpg), url(../background-1.png);
302 | --newtab-element-hover-color: rgb(239 239 239 / .3) !important;
303 | --newtab-element-active-color: rgb(239 239 239 / .45) !important;
304 | --text-shadow: 0 1px 2px #000;
305 | --icon-shadow: drop-shadow(0 0.3px 0.6px #000);
306 | background-color: #252525 !important;
307 | background-image: var(--bg-0) !important;
308 | background-position: center !important;
309 | background-size: cover !important;
310 | background-attachment: fixed !important;
311 | }
312 |
313 | :root[lwt-newtab-brighttext] body,
314 | :root.private body {
315 | background-image: var(--bg-1), var(--bg-0) !important;
316 | --newtab-element-hover-color: rgb(66 66 66 / .4) !important;
317 | --newtab-element-active-color: rgb(66 66 66 / .55) !important;
318 | }
319 |
320 | @media not (-moz-bool-pref: "browser.theme.dark-private-windows") {
321 | :root.private body {
322 | background-image: var(--bg-0) !important;
323 | }
324 |
325 | @media (prefers-color-scheme: dark) {
326 | :root.private body {
327 | background-image: var(--bg-1), var(--bg-0) !important;
328 | }
329 | }
330 | }
331 |
332 | .top-site-outer .title,
333 | .ds-header,
334 | .ds-layout .section-title span,
335 | .ds-navigation,
336 | .page-section-header > h1,
337 | .page-section-header > .section-description,
338 | .closed-tab-li-main:not(:hover, :active),
339 | .closed-tab-li-dismiss,
340 | .brand-logo > .brand-feature-name,
341 | #colorways-collection-title,
342 | #colorways-collection-description,
343 | .synced-tabs-container > .loading-content {
344 | text-shadow: var(--text-shadow) !important;
345 | color: #fff !important;
346 | -moz-osx-font-smoothing: auto !important;
347 | }
348 |
349 | .wordmark,
350 | .icon-settings,
351 | .top-site-outer .context-menu-button,
352 | .closed-tab-li-main:not(:hover, :active) .favicon,
353 | .page-section-header:not(:hover) > .twisty,
354 | .synced-tab-li-favicon,
355 | .page-section-header:not(:hover) > .twisty,
356 | .closed-tab-li-dismiss:not(:hover),
357 | .synced-tabs-container > .loading-content .sync {
358 | filter: var(--icon-shadow) !important;
359 | color: #fff !important;
360 | fill: currentColor !important
361 | }
362 |
363 | .section-top-bar .learn-more-link a,
364 | .ds-navigation a {
365 | color: #b3d4ff !important;
366 | text-shadow: var(--text-shadow) !important;
367 | -moz-osx-font-smoothing: auto !important;
368 | }
369 |
370 | .top-site-outer .title .sponsored-label,
371 | .closed-tab-li-main:not(:hover, :active) :is(.closed-tab-li-url, .closed-tab-li-time) {
372 | color: #eee !important;
373 | }
374 |
375 | .fixed-search .search-wrapper {
376 | border-bottom: 0 !important;
377 | background: transparent linear-gradient(#0004, transparent) !important;
378 | }
379 | }
380 | }
381 |
--------------------------------------------------------------------------------
/chrome/global/browser.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - browser.css
2 | * https://github.com/bmFtZQ/edge-frfox */
3 |
4 | /* Windows has 1px missing space on top of window, but not when accent colour is
5 | * applied to the title bar. */
6 | @media (-moz-platform: windows) and (not (-moz-windows-accent-color-in-titlebar)) {
7 | :root[sizemode="normal"][tabsintitlebar]:not([inFullscreen]) #navigator-toolbox {
8 | padding-top: 1px !important;
9 | }
10 | }
11 |
12 | /* Add a shadow when the toolbars move over content, eg. in macOS hovering over
13 | * the menu bar in fullscreen mode. */
14 | #navigator-toolbox[style*="transform"] {
15 | box-shadow: 0 -3px 5px 3px light-dark(rgb(0 0 0 / .3), rgb(0 0 0 / .6)) !important;
16 | }
17 |
18 | /* Rounded Corners Tweak */
19 | @media (-moz-bool-pref: "uc.tweak.rounded-corners") {
20 | /* Since Firefox 120, when the bookmarks bar is set to only open on new tabs,
21 | * the bookmarks bar overlaps the #browser element. */
22 |
23 | /* Change the element that shifts the browser content to the correct position. */
24 | #main-window[BookmarksToolbarOverlapsBrowser] .newTabBrowserPanel,
25 | #main-window[BookmarksToolbarOverlapsBrowser] #sidebar-box {
26 | padding-top: 0 !important;
27 | }
28 |
29 | #main-window[BookmarksToolbarOverlapsBrowser] #browser {
30 | margin-top: var(--bookmarks-toolbar-overlapping-browser-height);
31 | }
32 |
33 | /* Make sure that the toolbars are not positioned in-front of the browser
34 | * element. */
35 | #main-window[BookmarksToolbarOverlapsBrowser] #navigator-toolbox:not([style*="z-index"]) {
36 | z-index: auto !important;
37 | }
38 |
39 | /* Move the browser element in-front of the toolbars when on the new tab page. */
40 | #main-window:not([BookmarksToolbarOverlapsBrowser]) #browser {
41 | z-index: 1 !important;
42 | }
43 |
44 | /* Variables used for the rounded corners. */
45 | #main-window:not([chromehidden~="toolbar"]) {
46 | --uc-tweak-rounded-corners-padding: 8px;
47 | --uc-tweak-rounded-corners-radius: 10px;
48 | --uc-tweak-rounded-corners-shadow:
49 | 0 -.8px 0 0 rgb(0 0 0 / 0.02),
50 | 0 0.5px 1px 1px rgb(0 0 0 / 0.06),
51 | 0 1px 1px rgb(0 0 0 / 0.1);
52 | --browser-frame-bgcolor: var(--toolbar-bgcolor, var(--lwt-accent-color));
53 |
54 | /* Different shadow for higher resolution displays. */
55 | @media (resolution > 1.8dppx) {
56 | --uc-tweak-rounded-corners-shadow:
57 | 0 0 0.5px 0.5px rgb(0 0 0 / 0.06),
58 | 0 0.5px 1.5px rgb(0 0 0 / 0.1);
59 | }
60 |
61 | @media (-moz-bool-pref: "uc.tweak.floating-tabs") {
62 | --browser-frame-bgcolor: var(--lwt-accent-color);
63 |
64 | &:-moz-window-inactive {
65 | --browser-frame-bgcolor: var(--lwt-accent-color-inactive, var(--lwt-accent-color));
66 | }
67 | }
68 | }
69 |
70 | /* Hide border below titlebar on macOS, as its titlebar already has a border. */
71 | @media (-moz-platform: macos) {
72 | :root[chromehidden~="toolbar"][chromehidden~="location"][chromehidden~="directories"] {
73 | border-top: none !important;
74 | }
75 | }
76 |
77 | /* Remove separator between toolbars and the browser window. */
78 | #navigator-toolbox {
79 | border-bottom: none !important;
80 | }
81 |
82 | /* Disable rounded corners in fullscreen, only if the toolbar is hidden. */
83 | :root[inFullscreen] #navigator-toolbox[style*="margin-top"] + #browser,
84 | :root[inDOMFullscreen] #browser {
85 | --uc-tweak-rounded-corners-padding: 0;
86 | --uc-tweak-rounded-corners-radius: 0;
87 | --uc-tweak-rounded-corners-shadow: unset;
88 | }
89 |
90 | /* Apply rounded corners to the browser container. */
91 | #appcontent .browserStack {
92 | margin-inline: var(--uc-tweak-rounded-corners-padding) !important;
93 | margin-block-end: var(--uc-tweak-rounded-corners-padding) !important;
94 | border-radius: var(--uc-tweak-rounded-corners-radius) !important;
95 | box-shadow: var(--uc-tweak-rounded-corners-shadow) !important;
96 | background-color: var(--tabpanel-background-color) !important;
97 | position: relative !important;
98 |
99 | /* Use pseudo element overlay to simulate rounded corners, similar to the
100 | * tab corners, fixes bug with backdrop-filter. */
101 | &::after {
102 | content: "";
103 | position: absolute;
104 | inset: 0;
105 | border-radius: inherit;
106 | /* Draw toolbar background on the negative corner space, then draw the
107 | * same shadow from the browser window on top. */
108 | box-shadow:
109 | var(--uc-tweak-rounded-corners-shadow, 0 0 transparent),
110 | 0 0 0 16px var(--browser-frame-bgcolor) !important;
111 | clip-path: inset(0);
112 | pointer-events: none;
113 | }
114 | }
115 |
116 | /* Prevent status panel corners and shadow from appearing outside the browser. */
117 | #statuspanel {
118 | overflow: hidden;
119 | }
120 |
121 | /* Apply rounded corners to sidebar. */
122 | #sidebar-box {
123 | margin-inline-start: var(--uc-tweak-rounded-corners-padding) !important;
124 | margin-block-end: var(--uc-tweak-rounded-corners-padding) !important;
125 | border-radius: var(--uc-tweak-rounded-corners-radius) !important;
126 | overflow: hidden !important;
127 | box-shadow: var(--uc-tweak-rounded-corners-shadow) !important;
128 |
129 | &[positionend] {
130 | margin-inline-start: 0 !important;
131 | margin-inline-end: var(--uc-tweak-rounded-corners-padding) !important;
132 | }
133 | }
134 |
135 | /* Devtools window when docked to the left or right. */
136 | .devtools-toolbox-side-iframe {
137 | margin-block-end: var(--uc-tweak-rounded-corners-padding) !important;
138 | border-radius: var(--uc-tweak-rounded-corners-radius) !important;
139 | overflow: hidden !important;
140 | box-shadow: var(--uc-tweak-rounded-corners-shadow) !important;
141 |
142 | /* Devtools window when docked to the left. */
143 | &:first-child {
144 | margin-inline-start: var(--uc-tweak-rounded-corners-padding) !important;
145 | }
146 |
147 | /* Devtools window when docked to the right. */
148 | &:last-child {
149 | margin-inline-end: var(--uc-tweak-rounded-corners-padding) !important;
150 | }
151 | }
152 |
153 | /* Devtools window when docked to the bottom. */
154 | .devtools-toolbox-bottom-iframe {
155 | margin: var(--uc-tweak-rounded-corners-padding) !important;
156 | margin-block-start: 0 !important;
157 | border-radius: var(--uc-tweak-rounded-corners-radius) !important;
158 | overflow: hidden !important;
159 | box-shadow: var(--uc-tweak-rounded-corners-shadow) !important;
160 | }
161 |
162 | /* Hide devtools splitter. */
163 | .devtools-side-splitter,
164 | .devtools-horizontal-splitter {
165 | background-color: transparent !important;
166 | }
167 |
168 | /* Remove sidebar border when not in full screen. */
169 | :not(:root[inFullscreen] #navigator-toolbox[style*="margin-top"]) + #browser #sidebar-splitter {
170 | border-inline-width: 0 !important;
171 | }
172 |
173 | /* Apply colour to the frame around the browser window. */
174 | #browser {
175 | background-color: var(--browser-frame-bgcolor);
176 | }
177 |
178 | /* Change colour of page when loading */
179 | #tabbrowser-tabpanels {
180 | background-color: transparent !important;
181 | }
182 | }
183 |
--------------------------------------------------------------------------------
/chrome/global/colors.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - colors.css
2 | * https://github.com/bmFtZQ/edge-frfox */
3 |
4 | /* default colours (light & dark) */
5 | :root:not(:-moz-lwtheme),
6 | /* `--newtab-background-color-secondary used` to differentiate between a dark
7 | * private window and private window with the 'Dark' theme enabled.
8 | * May not be the most reliable method, but works for now up to FF 123. */
9 | :root[privatebrowsingmode="temporary"]:where([style*="--lwt-accent-color: rgb(28, 27, 34)"]:not([style*="--newtab-background-color-secondary: rgb(66, 65, 77)"])) {
10 | /* Toolbars */
11 | --lwt-accent-color: light-dark(#cecece, #1C1C1C) !important;
12 | --lwt-accent-color-inactive: light-dark(#e8e8e8, #2e2e2e) !important;
13 | --lwt-text-color: light-dark(#000, #FFF) !important;
14 | --lwt-text-color-inactive: light-dark(#3A3A3A, #CBCBCB) !important;
15 | --tab-selected-textcolor: light-dark(#000, #fff) !important;
16 | --tab-selected-textcolor-inactive: light-dark(#3E3E3E, #CBCBCB) !important;
17 | --tab-selected-bgcolor: var(--toolbar-bgcolor) !important;
18 | --tab-attention-icon-color: light-dark(#0078D4, #93d0ff) !important;
19 | --toolbar-bgcolor: light-dark(#f7f7f7, #3B3B3B) !important;
20 | --toolbar-non-lwt-bgcolor: var(--toolbar-bgcolor) !important;
21 | --toolbar-color: light-dark(#000, #fff) !important;
22 | --toolbarbutton-icon-fill: var(--toolbar-color) !important;
23 | --toolbarbutton-icon-fill-attention: light-dark(#0078D4, #4C98D1) !important;
24 | --toolbarseparator-color: color-mix(in srgb, currentColor 25%, transparent) !important;
25 | --chrome-content-separator-color: light-dark(#bfbfbf, #686868) !important;
26 | --newtab-background-color: light-dark(#f7f7f7, #252525) !important;
27 | --tabpanel-background-color: var(--newtab-background-color, var(--toolbar-bgcolor, transparent)) !important;
28 | /* Toolbar button overlays */
29 | --toolbarbutton-hover-background: color-mix(in srgb, currentColor 8%, transparent) !important;
30 | --toolbarbutton-active-background: color-mix(in srgb, currentColor 13.5%, transparent) !important;
31 | /* Tab audio indicator overlay icon */
32 | --tab-icon-overlay-fill: var(--toolbar-color) !important;
33 | --tab-icon-overlay-stroke: var(--toolbar-bgcolor) !important;
34 | /* URL bar */
35 | --toolbar-field-background-color: light-dark(#fff, #2B2B2B) !important;
36 | --toolbar-field-color: light-dark(#000, #fff) !important;
37 | --toolbar-field-border-color: transparent !important;
38 | --toolbar-field-focus-background-color: var(--toolbar-field-background-color) !important;
39 | --toolbar-field-focus-color: var(--toolbar-field-color) !important;
40 | --toolbar-field-focus-border-color: light-dark(#0055D780, #63ADE5) !important;
41 | --urlbar-icon-fill-opacity: 0.58 !important;
42 | --urlbar-box-bgcolor: light-dark(rgb(0 0 0 / .09), rgb(255 255 255 / .11)) !important;
43 | --urlbar-box-hover-bgcolor: light-dark(rgb(0 0 0 / .09), rgb(255 255 255 / .11)) !important;
44 | --urlbar-box-active-bgcolor: light-dark(rgb(0 0 0 / .22), rgb(255 255 255 / .28)) !important;
45 | --urlbar-box-focus-bgcolor: var(--urlbar-box-hover-bgcolor) !important;
46 | /* URL bar suggestions */
47 | --link-color: light-dark(#0078D4, #75B6E8) !important;
48 | --uc-urlbarView-accent-color: light-dark(#1A6397, #75B6E8) !important;
49 | --urlbarView-highlight-background: light-dark(#F2F2F2, #383838) !important;
50 | --urlbarView-highlight-color: light-dark(#000, #fff) !important;
51 | --urlbarView-hover-background: light-dark(#e5e5e5, #444444) !important;
52 | --urlbarView-separator-color: light-dark(#EFEFEF, #5F5F5F) !important;
53 | /* Menus/panels */
54 | --arrowpanel-background: light-dark(#fff, #4A4A4A) !important;
55 | --arrowpanel-color: light-dark(#1c1c1c, #fff) !important;
56 | --arrowpanel-border-color: light-dark(#fff, #636363) !important;
57 | --arrowpanel-dimmed: light-dark(#565656, #565656) !important;
58 | --arrowpanel-dimmed-further: light-dark(#707070, #707070) !important;
59 | --panel-separator-color: light-dark(#dadada, #636363) !important;
60 | --panel-description-color: light-dark(#000a, #fffb) !important;
61 | --panel-disabled-color: light-dark(#9E9E9E, #B9B9B9) !important;
62 | --panel-item-hover-bgcolor: light-dark(#eee, #646464) !important;
63 | --panel-item-active-bgcolor: light-dark(#ddd, #747474) !important;
64 | --panel-banner-item-update-supported-bgcolor: light-dark(#188038, #81C995) !important;
65 | /* Primary button */
66 | --button-primary-bgcolor: light-dark(#0078D4, #006CBE) !important;
67 | --button-primary-color: light-dark(#fff, #fff) !important;
68 | --button-primary-hover-bgcolor: light-dark(#006BBD, #1C7CC5) !important;
69 | --button-primary-active-bgcolor: light-dark(#0060AA, #3289CB) !important;
70 | /* Secondary button */
71 | --button-bgcolor: light-dark(#EFEFEF, #5C5C5C) !important;
72 | --button-color: light-dark(#000, #fff) !important;
73 | --button-hover-bgcolor: light-dark(#D5D5D5, #6E6E6E) !important;
74 | --button-active-bgcolor: light-dark(#C0C0C0, #7C7C7C) !important;
75 | /* Text input field, e.g. bookmarks editor */
76 | --focus-outline-color: light-dark(#0055D780, #63ADE5) !important;
77 | --input-bgcolor: light-dark(#fff, #4A4A4A) !important;
78 | --input-color: light-dark(#2b2b2b, #fff) !important;
79 | --input-border-color: light-dark(#bebebe, #808080) !important;
80 | --error-text-color: light-dark(#FF9AA2, #FF9AA2) !important;
81 | --input-error-border-color: light-dark(#FF848A, #FF848A) !important;
82 | /* Side bar colours. */
83 | --sidebar-background-color: light-dark(#f7f7f7, #3b3b3b) !important;
84 | --sidebar-text-color: light-dark(#000, #fff) !important;
85 | --sidebar-border-color: light-dark(#bfbfbf, #686868) !important;
86 |
87 | /* ::::: Dialog theme ::::: */
88 | & #window-modal-dialog::backdrop {
89 | /* Overlay when dialog is shown. */
90 | background-color: rgb(20 20 20 / .2) !important;
91 | }
92 |
93 | &[dialogroot] {
94 | /* Dialog */
95 | --in-content-page-background: var(--arrowpanel-background) !important;
96 | --in-content-page-color: var(--arrowpanel-color) !important;
97 | /* Primary button */
98 | --in-content-primary-button-text-color: var(--button-primary-color) !important;
99 | --in-content-primary-button-background: var(--button-primary-bgcolor) !important;
100 | --in-content-primary-button-background-hover: var(--button-primary-hover-bgcolor) !important;
101 | --in-content-primary-button-background-active: var(--button-primary-active-bgcolor) !important;
102 | /* Secondary button */
103 | --in-content-button-text-color: var(--button-color) !important;
104 | --in-content-button-background: var(--button-bgcolor) !important;
105 | --in-content-button-background-hover: var(--button-hover-bgcolor) !important;
106 | --in-content-button-background-active: var(--button-active-bgcolor) !important;
107 | /* Text input */
108 | --in-content-box-background: var(--input-bgcolor) !important;
109 | --in-content-box-border-color: var(--input-border-color) !important;
110 | }
111 | }
112 |
113 | /* Ensure that dark mode is enabled completely in private browsing mode. */
114 | @media (-moz-bool-pref: "browser.theme.dark-private-windows") {
115 | :root[privatebrowsingmode="temporary"],
116 | :root[privatebrowsingmode="temporary"] #nav-bar,
117 | :root[privatebrowsingmode="temporary"] #PersonalToolbar {
118 | --toolbar-color-scheme: dark !important;
119 | --tab-selected-color-scheme: dark !important;
120 | color-scheme: dark !important;
121 | }
122 | }
123 |
124 | /* Apply colours to the default 'Auto' theme. */
125 | #navigator-toolbox:not(:-moz-lwtheme) {
126 | background-color: var(--lwt-accent-color) !important;
127 | color: var(--lwt-text-color) !important;
128 |
129 | /* Inactive window background colours. */
130 | &:-moz-window-inactive {
131 | background-color: var(--lwt-accent-color-inactive, var(--lwt-accent-color)) !important;
132 | color: var(--lwt-text-color-inactive, var(--lwt-text-color)) !important;
133 | }
134 | }
135 |
136 | /* Make sure that the tab toolbar opacity is always 1, inactive window colours
137 | * are already supplied by this theme. */
138 | :root[tabsintitlebar] #titlebar:-moz-window-inactive {
139 | opacity: 1 !important;
140 | }
141 |
142 | /* Make the titlebar buttons black/white on default themes */
143 | :root:not(:-moz-lwtheme)[tabsintitlebar] .titlebar-buttonbox {
144 | color: var(--lwt-text-color) !important;
145 | }
146 |
147 | /* Status/link preview panel */
148 | #statuspanel-label {
149 | background-color: var(--toolbar-field-focus-background-color) !important;
150 | color: var(--toolbar-field-focus-color) !important;
151 | border-color: transparent !important;
152 | box-shadow: 0 2px 5px #0002, 0 0 0 1px light-dark(#0001, #0002) !important;
153 | border-radius: 0 4px 0 0 !important;
154 |
155 | #statuspanel[mirror] & {
156 | border-radius: 4px 0 0 0 !important;
157 | }
158 | }
159 |
160 | @media (-moz-platform: windows) {
161 | /* Colour the text selection background and foreground. */
162 | ::selection {
163 | background-color: light-dark(#0078D4, #93B8E7) !important;
164 | color: light-dark(#fff, #000) !important;
165 | }
166 |
167 | tooltip {
168 | background-color: var(--arrowpanel-background) !important;
169 | color: var(--arrowpanel-color) !important;
170 | border-color: var(--arrowpanel-border-color) !important;
171 | }
172 |
173 | /* Use accent colour in titlebar when Windows option is enabled. */
174 | @media (-moz-windows-accent-color-in-titlebar) and (-moz-bool-pref: "browser.theme.windows.accent-color-in-tabs.enabled") {
175 | /* Uses :root:root to beat specificity of floating tabs adjustments. */
176 | :root:root:not(:-moz-lwtheme) {
177 | --lwt-accent-color: ActiveCaption !important;
178 | --lwt-text-color: CaptionText !important;
179 | --lwt-accent-color-inactive: InActiveCaption !important;
180 | --lwt-text-color-inactive: InActiveCaptionText !important;
181 | }
182 | }
183 |
184 | .titlebar-button:not(.titlebar-close):hover {
185 | background-color: color-mix(in srgb, currentColor 11%, transparent) !important;
186 |
187 | &:active {
188 | background-color: color-mix(in srgb, currentColor 20%, transparent) !important;
189 | }
190 | }
191 |
192 | .titlebar-close:hover {
193 | stroke: white !important;
194 | background-color: #e81123 !important;
195 |
196 | &:active {
197 | background-color: #DC5C66 !important;
198 | }
199 |
200 | toolbar[brighttext] &:active {
201 | background-color: #971821 !important;
202 | }
203 | }
204 |
205 | /* Library window colour theme. */
206 | window#places {
207 | --organizer-color: light-dark(#000, #fff) !important;
208 | --organizer-deemphasized-color: light-dark(#666, #bbb) !important;
209 | --organizer-toolbar-background: light-dark(#f7f7f7, #3B3B3B) !important;
210 | --organizer-pane-background: light-dark(#f7f7f7, #2B2B2B) !important;
211 | --organizer-content-background: light-dark(#f7f7f7, #1C1C1C) !important;
212 | --organizer-hover-background: light-dark(#00000025, #ffffff25) !important;
213 | --organizer-selected-background: light-dark(#006CBE80, #006CBE80) !important;
214 | --organizer-outline-color: light-dark(#0055D7a0, #63ADE5) !important;
215 | --organizer-toolbar-field-background: light-dark(#fff, #2B2B2B) !important;
216 | --organizer-toolbar-field-background-focused: light-dark(#fff, #2B2B2B) !important;
217 | --organizer-border-color: light-dark(#bfbfbf, #686868) !important;
218 | scrollbar-color:
219 | light-dark(#0006, #fff6)
220 | light-dark(#f7f7f740, #2B2B2B40) !important;
221 | }
222 |
223 | #placesViewsBox #downloadsListBox richlistitem[selected="true"] {
224 | background-color: light-dark(#006CBE, #006CBE) !important;
225 | color: light-dark(#fff, #fff) !important;
226 | }
227 |
228 | #placeContentColumns :is(treecol, treecolpicker) {
229 | background-color: light-dark(#f7f7f7, #3B3B3B) !important;
230 | color: light-dark(#000, #fff) !important;
231 | border-inline-start: 1px solid light-dark(#bfbfbf, #686868) !important;
232 | box-shadow: inset 0 -1px light-dark(#bfbfbf, #686868) !important;
233 | appearance: none !important;
234 | }
235 |
236 | #placeContentColumns :is(treecol, treecolpicker):where(:hover) {
237 | background-color: light-dark(#cecece, #4A4A4A) !important;
238 | color: light-dark(#000, #fff) !important;
239 | }
240 | }
241 |
242 | /* Prevent macOS vibrancy appearance, instead using a solid background. */
243 | #sidebar-box {
244 | appearance: none !important;
245 | }
246 |
247 | .sidebar-panel:not([lwt-sidebar]) {
248 | color: light-dark(#000, #fff) !important;
249 | scrollbar-color: light-dark(#0006, #fff6) light-dark(#f7f7f740, #3b3b3b40) !important;
250 |
251 | /* Sidebar search box (Windows) */
252 | @media(-moz-platform: windows) {
253 | & #sidebar-search-container > #search-box,
254 | & #viewButton {
255 | appearance: none !important;
256 | background-color: var(--toolbar-field-background-color) !important;
257 | color: inherit !important;
258 | border: 1px solid var(--input-border-color) !important;
259 | border-radius: 4px !important;
260 | padding: 6px 8px !important;
261 |
262 | &:focus {
263 | outline: 2px solid var(--input-border-color) !important;
264 | outline-offset: -2px !important;
265 | border-color: transparent !important;
266 | }
267 | }
268 | }
269 | }
270 |
271 | @-moz-document url(chrome://browser/content/syncedtabs/sidebar.xhtml) {
272 | body {
273 | background: transparent !important;
274 | }
275 | }
276 |
277 | /* Linux / GTK csd support */
278 | @media (-moz-gtk-csd-available) {
279 | :root:not(:-moz-lwtheme),
280 | /* `--newtab-background-color-secondary used` to differentiate between a dark
281 | * private window and private window with the 'Dark' theme enabled.
282 | * May not be the most reliable method, but works for now up to FF 123. */
283 | :root[privatebrowsingmode="temporary"]:where([style*="--lwt-accent-color: rgb(28, 27, 34)"]:not([style*="--newtab-background-color-secondary: rgb(66, 65, 77)"])) {
284 | /* Used for mixing colours differently in light/dark themes. */
285 | --uc-tint: light-dark(black, white);
286 | /* Colour adjusted for readability. */
287 | --uc-accent-adjusted: light-dark(
288 | color-mix(in oklch, AccentColor 92%, black),
289 | color-mix(in oklch, AccentColor 60%, white)
290 | );
291 | /* Toolbars */
292 | --lwt-accent-color: light-dark(color-mix(in srgb, ActiveCaption 90%, black), ActiveCaption) !important;
293 | --lwt-accent-color-inactive: light-dark(color-mix(in srgb, InactiveCaption 94%, black), InactiveCaption) !important;
294 | --lwt-text-color: CaptionText !important;
295 | --lwt-text-color-inactive: color-mix(in srgb, CaptionText 65%, transparent) !important;
296 | --tab-selected-textcolor: var(--toolbar-color) !important;
297 | --tab-selected-textcolor-inactive: color-mix(in srgb, var(--toolbar-color) 65%, transparent) !important;
298 | --tab-selected-bgcolor: var(--toolbar-bgcolor) !important;
299 | --tab-attention-icon-color: var(--uc-accent-adjusted) !important;
300 | --toolbar-bgcolor: light-dark(-moz-dialog, color-mix(in srgb, -moz-dialog 92%, white)) !important;
301 | --toolbar-color: -moz-dialogtext !important;
302 | --toolbarbutton-icon-fill-attention: var(--uc-accent-adjusted) !important;
303 | --chrome-content-separator-color: color-mix(in srgb, currentColor 17%, var(--toolbar-bgcolor)) !important;
304 | --newtab-background-color: light-dark(-moz-dialog, color-mix(in srgb, -moz-dialog 82%, black)) !important;
305 | /* URL bar */
306 | --toolbar-field-background-color: light-dark(Field, color-mix(in srgb, Field 96%, -moz-dialogtext)) !important;
307 | --toolbar-field-color: FieldText !important;
308 | --toolbar-field-focus-border-color: light-dark(color-mix(in srgb, var(--focus-outline-color) 50%, transparent), var(--focus-outline-color)) !important;
309 | --urlbar-box-bgcolor: var(--button-bgcolor) !important;
310 | --urlbar-box-hover-bgcolor: var(--button-hover-bgcolor) !important;
311 | --urlbar-box-active-bgcolor: var(--button-active-bgcolor) !important;
312 | /* URL bar suggestions. */
313 | --link-color: var(--uc-accent-adjusted) !important;
314 | --uc-urlbarView-accent-color: var(--uc-accent-adjusted) !important;
315 | --urlbarView-highlight-background: var(--panel-item-hover-bgcolor) !important;
316 | --urlbarView-highlight-color: var(--toolbar-field-color) !important;
317 | --urlbarView-hover-background: var(--panel-item-active-bgcolor) !important;
318 | --urlbarView-separator-color: var(--panel-separator-color) !important;
319 | /* Menus/panels */
320 | --arrowpanel-background: Field !important;
321 | --arrowpanel-color: FieldText !important;
322 | --arrowpanel-border-color: light-dark(transparent, var(--panel-separator-color)) !important;
323 | --arrowpanel-dimmed: color-mix(in srgb, currentColor 17%, transparent) !important;
324 | --arrowpanel-dimmed-further: color-mix(in srgb, currentColor 30%, transparent) !important;
325 | --panel-separator-color: color-mix(in srgb, currentColor 17%, var(--arrowpanel-background)) !important;
326 | --panel-description-color: GrayText !important;
327 | --panel-disabled-color: GrayText !important;
328 | --panel-item-hover-bgcolor: color-mix(in srgb, currentColor 8%, transparent) !important;
329 | --panel-item-active-bgcolor: color-mix(in srgb, currentColor 13%, transparent) !important;
330 | /* Primary button */
331 | --button-primary-bgcolor: AccentColor !important;
332 | --button-primary-color: AccentColorText !important;
333 | --button-primary-hover-bgcolor: color-mix(in srgb, var(--uc-tint) 10%, var(--button-primary-bgcolor)) !important;
334 | --button-primary-active-bgcolor: color-mix(in srgb, var(--uc-tint) 20%, var(--button-primary-bgcolor)) !important;
335 | /* Secondary button */
336 | --button-bgcolor: color-mix(in srgb, currentColor 10%, transparent) !important;
337 | --button-color: currentColor !important;
338 | --button-hover-bgcolor: color-mix(in srgb, currentColor 14%, transparent) !important;
339 | --button-active-bgcolor: color-mix(in srgb, currentColor 20%, transparent) !important;
340 | /* Text input field, e.g. bookmarks editor. */
341 | --focus-outline-color: var(--uc-accent-adjusted) !important;
342 | --input-bgcolor: var(--arrowpanel-background) !important;
343 | --input-color: var(--arrowpanel-color) !important;
344 | --input-border-color: color-mix(in srgb, currentColor 35%, var(--arrowpanel-background)) !important;
345 | /* Sidebar */
346 | --sidebar-background-color: var(--toolbar-bgcolor) !important;
347 | --sidebar-text-color: var(--toolbar-color) !important;
348 | --sidebar-border-color: var(--chrome-content-separator-color) !important;
349 | }
350 |
351 | /* Use the same sidebar splitter style as other platforms. */
352 | .sidebar-splitter {
353 | border: 0 solid var(--sidebar-border-color) !important;
354 | border-inline-end-width: 1px !important;
355 | width: 4px !important;
356 | background-color: transparent !important;
357 | margin-inline-start: -4px !important;
358 | }
359 | }
360 |
--------------------------------------------------------------------------------
/chrome/global/tree.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - tree.css */
2 |
3 | /* Change height of tree items and add rounded corners */
4 | treechildren::-moz-tree-row,
5 | treecol:not([hideheader="true"]),
6 | .tree-columnpicker-button {
7 | min-height: max(28px, 1.3em) !important;
8 | border-radius: 2px !important;
9 | }
10 |
11 | /* Change the background colour on hover */
12 | @media not (prefers-contrast) {
13 | treechildren::-moz-tree-row(hover) {
14 | background-color: var(--toolbarbutton-hover-background) !important;
15 | }
16 | }
17 |
18 | /* Change the background colour when pressed */
19 | treechildren::-moz-tree-row(selected) {
20 | background-color: var(--toolbarbutton-active-background) !important;
21 | }
22 |
23 | /* Change the background colour when focused */
24 | treechildren::-moz-tree-row(selected, focus) {
25 | background-color: var(--button-primary-bgcolor) !important;
26 | }
27 |
28 | treechildren::-moz-tree-row(current, focus) {
29 | outline: var(--default-focusring);
30 | outline-color: var(--button-primary-bgcolor) !important;
31 | outline-offset: calc(-1 * var(--default-focusring-width));
32 | }
33 |
34 | treechildren::-moz-tree-image(selected),
35 | treechildren::-moz-tree-twisty(selected),
36 | treechildren::-moz-tree-cell-text(selected) {
37 | color: inherit !important;
38 | }
39 |
40 | treechildren::-moz-tree-image(selected, focus),
41 | treechildren::-moz-tree-twisty(selected, focus),
42 | treechildren::-moz-tree-cell-text(selected, focus) {
43 | color: var(--button-primary-color) !important;
44 | }
45 |
46 | /* Spacing between icon and label */
47 | treechildren::-moz-tree-image {
48 | margin-inline-end: 8px !important;
49 | }
50 |
51 | /* Separator appearance */
52 | treechildren::-moz-tree-separator {
53 | border-top: 1px solid var(--toolbarseparator-color) !important;
54 | border-bottom: none !important;
55 | }
56 |
57 | /* Change the colour of the drop feedback elements */
58 | treechildren::-moz-tree-cell-text(primary, dropOn) {
59 | background-color: var(--button-primary-bgcolor) !important;
60 | color: var(--button-primary-color) !important;
61 | }
62 |
63 | treechildren::-moz-tree-drop-feedback {
64 | background-color: var(--toolbarbutton-icon-fill-attention) !important;
65 | border-radius: 2px !important;
66 | }
67 |
68 | /* Change the appearance for the expandable items */
69 | treechildren::-moz-tree-twisty {
70 | padding-top: 0 !important;
71 | padding-inline: 4px !important;
72 | width: 16px !important;
73 | list-style-image: url("../icons/arrow-filled-right.svg") !important;
74 | }
75 |
76 | treechildren:-moz-locale-dir(rtl)::-moz-tree-twisty(closed) {
77 | list-style-image: url("../icons/arrow-filled-left.svg") !important;
78 | }
79 |
80 | treechildren::-moz-tree-twisty(open) {
81 | list-style-image: url("../icons/arrow-filled-down.svg") !important;
82 | }
83 |
84 | /* Change the identation of child items */
85 | treechildren::-moz-tree-indentation {
86 | width: 16px !important;
87 | }
88 |
--------------------------------------------------------------------------------
/chrome/global/tweaks.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - tweaks.css */
2 |
3 | /* disable drag space above tabs */
4 | @media (-moz-bool-pref: "uc.tweak.disable-drag-space") {
5 | :root {
6 | --uc-tab-top-margin: 0px !important;
7 | }
8 | }
9 |
10 | /* force tabs to toolbar bg (useful for proton themes) (might experience some
11 | bugs with certain themes eg. dark text on dark background.) */
12 | @media (-moz-bool-pref: "uc.tweak.force-tab-colour") {
13 | :root:-moz-lwtheme {
14 | --tab-selected-bgcolor: var(--toolbar-bgcolor) !important;
15 | --tab-selected-textcolor: var(--toolbar-color) !important;
16 | }
17 | }
18 |
19 | /* remove tab separators */
20 | @media (-moz-bool-pref: "uc.tweak.remove-tab-separators") {
21 | .tabbrowser-tab .tab-stack {
22 | &::before,
23 | &::after {
24 | content: initial !important;
25 | }
26 | }
27 | }
28 |
29 | @media (-moz-bool-pref: "uc.tweak.floating-tabs") {
30 | :root:not(:-moz-lwtheme),
31 | /* `--newtab-background-color-secondary used` to differentiate between a dark
32 | * private window and private window with the 'Dark' theme enabled.
33 | * May not be the most reliable method, but works for now up to FF 123. */
34 | :root[privatebrowsingmode="temporary"]:where([style*="--lwt-accent-color: rgb(28, 27, 34)"]:not([style*="--newtab-background-color-secondary: rgb(66, 65, 77)"])) {
35 | --lwt-accent-color: light-dark(#f3f3f3, #202020) !important;
36 | --lwt-accent-color-inactive: unset !important;
37 | --toolbar-bgcolor: light-dark(#fff, #3F3F3F) !important;
38 | --lwt-tab-text: light-dark(#262626, #fff) !important;
39 | --chrome-content-separator-color: light-dark(#bfbfbf, #535353) !important;
40 | --lwt-tab-line-color: light-dark(transparent, rgb(255 255 255 / 0.06)) !important;
41 | }
42 |
43 | /* Uses :root body to avoid affecting other variables by changing
44 | * --toolbar-color. */
45 | :root body {
46 | /* Use tabbar colours for better readability when using custom themes. */
47 | --toolbar-color: var(--lwt-text-color) !important;
48 | --toolbarbutton-icon-fill: var(--lwt-text-color) !important;
49 |
50 | &:-moz-window-inactive {
51 | --toolbar-color: var(--lwt-text-color-inactive, var(--lwt-text-color)) !important;
52 | --toolbarbutton-icon-fill: var(--lwt-text-color-inactive, var(--lwt-text-color)) !important;
53 | }
54 | }
55 |
56 | @media (-moz-gtk-csd-available) {
57 | :root:not(:-moz-lwtheme) {
58 | --toolbar-bgcolor: color-mix(in srgb, -moz-dialog 80%, #fff) !important;
59 | --toolbar-field-background-color: Field !important;
60 | --lwt-tab-text: -moz-dialogtext !important;
61 | --lwt-tab-line-color: rgb(255 255 255 / 0.06) !important;
62 | --lwt-accent-color: var(--toolbox-non-lwt-bgcolor) !important;
63 |
64 | &:-moz-window-inactive {
65 | --lwt-accent-color: var(--toolbox-non-lwt-bgcolor-inactive) !important;
66 | }
67 | }
68 | }
69 |
70 | /* Shadow for navbar and tabs */
71 | :root,
72 | :root .tabbrowser-tab {
73 | --uc-titlebar-shadow: none;
74 | --uc-tab-shadow-outline: rgb(0 0 0 / .11);
75 | --uc-tab-shadow: 0 2.5px 3px 1px rgb(0 0 0 / .08);
76 |
77 | & [brighttext],
78 | & [brighttext] .tabbrowser-tab {
79 | --uc-titlebar-shadow: none;
80 | --uc-tab-shadow-outline: transparent;
81 | --uc-tab-shadow: 0 2px 3px rgb(0 0 0 / .12);
82 | }
83 |
84 | & #TabsToolbar {
85 | --tab-border-radius: 8px !important;
86 | }
87 | }
88 |
89 | /* remove toolbar bg */
90 | #nav-bar,
91 | #PersonalToolbar {
92 | background-color: transparent !important;
93 | }
94 |
95 | /* invert bottom corner radius for tabs */
96 | .tab-background {
97 | border-radius: var(--tab-border-radius) !important;
98 |
99 | &::before,
100 | &::after {
101 | display: none !important;
102 | }
103 | }
104 |
105 | .tab-background[selected] {
106 | border: 1px solid var(--lwt-tab-line-color, var(--lwt-tabs-border-color, transparent)) !important;
107 | outline: 1px solid var(--uc-tab-shadow-outline) !important;
108 |
109 | /* Fractional scaling adjustments (150%, 175%, etc.) */
110 | @media (1dppx < resolution < 2dppx) {
111 | outline-width: 1.5px !important;
112 | }
113 | }
114 |
115 | /* adjust spacing of area above tabs */
116 | @media not (-moz-platform: macos) {
117 | :root[sizemode="maximized"] {
118 | --uc-tab-top-margin: 4px !important;
119 | }
120 | }
121 |
122 | :root:is([inFullscreen], :not([tabsintitlebar])) {
123 | --uc-tab-top-margin: 4px !important;
124 | }
125 |
126 | @media (-moz-bool-pref: "uc.tweak.disable-drag-space") {
127 | :root {
128 | --uc-tab-top-margin: 4px !important;
129 | }
130 | }
131 |
132 | /* IMPORTANT: Adds padding and removes margin on top of tabs to allow user to
133 | * select it from the top edge of the window */
134 | #tabbrowser-tabs {
135 | margin-top: calc(var(--uc-tab-top-margin) - 4px) !important;
136 |
137 | & .tabbrowser-tab,
138 | & #tabs-newtab-button {
139 | padding-top: 4px !important;
140 | }
141 | }
142 |
143 | #scrollbutton-up:not(.menupopup-scrollbutton),
144 | #scrollbutton-down:not(.menupopup-scrollbutton) {
145 | &,
146 | & ~ spacer {
147 | margin-top: 4px !important;
148 | }
149 | }
150 |
151 | /* move tab shadow behind urlbar */
152 | .tabbrowser-tab[visuallyselected="true"],
153 | #nav-bar {
154 | z-index: 2 !important;
155 | }
156 |
157 | /* tab shadow adjustments */
158 | .tabbrowser-tab {
159 | overflow-clip-margin: 8px !important;
160 | }
161 |
162 | #tabbrowser-arrowscrollbox > *,
163 | #scrollbutton-up:not(.menupopup-scrollbutton),
164 | #scrollbutton-up:not(.menupopup-scrollbutton) ~ spacer,
165 | #scrollbutton-down:not(.menupopup-scrollbutton) {
166 | margin-bottom: 8px !important;
167 | }
168 |
169 | #tabbrowser-arrowscrollbox {
170 | margin-bottom: -8px !important;
171 | }
172 | }
173 |
174 | @media (not (-moz-platform: macos)) and (not (-moz-bool-pref: "uc.tweak.revert-context-menu")) {
175 | @media (-moz-bool-pref: "uc.tweak.vertical-context-navigation") {
176 | #context-navigation {
177 | /* Stack menu items vertically. */
178 | flex-direction: column !important;
179 |
180 | /* Align the image and label to the left edge. */
181 | & > .menuitem-iconic {
182 | justify-content: start !important;
183 |
184 | &::after {
185 | /* Get the menuitem label from the aria-label attribute. */
186 | content: attr(aria-label);
187 | }
188 | }
189 | }
190 | }
191 | }
192 |
193 | @media (-moz-bool-pref: "uc.tweak.context-menu.hide-access-key") {
194 | :where(menuitem, menu) > :is(.menu-text, .menu-iconic-text)[value]:not([value=""]) {
195 | &::before {
196 | /* The default value is -moz-label-content, which takes the data from the
197 | * value attribute and highlights the character found in the accesskey
198 | * attribute. This skips that and uses the value attribute directly. */
199 | content: attr(value) !important;
200 | }
201 | }
202 | }
203 |
204 | @media (-moz-bool-pref: "uc.tweak.show-tab-close-button-on-hover") {
205 | #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([pinned], [selected]):hover .tab-close-button {
206 | display: flex !important;
207 | }
208 | }
209 |
210 | @media (-moz-bool-pref: "uc.tweak.hide-forward-button") {
211 | :root:not([customizing]) #forward-button[disabled] {
212 | display: none !important;
213 | }
214 | }
215 |
216 | @media (-moz-bool-pref: "uc.tweak.context-menu.hide-firefox-account") {
217 | #appMenu-fxa-status2,
218 | #appMenu-fxa-separator {
219 | display: none !important;
220 | }
221 | }
222 |
--------------------------------------------------------------------------------
/chrome/icons/accessibility.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/account-private.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/chrome/icons/account.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/chrome/icons/add-to-dictionary.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/arrow-down.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/arrow-filled-down.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/arrow-filled-left.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/arrow-filled-right.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/arrow-left.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/arrow-right.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/arrow-up.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/audio-save.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/autoplay-media-blocked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/autoplay-media.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/back.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/bookmark-hollow.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/bookmark-star-on-tray.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/bookmark.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/camera-blocked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/camera.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/canvas-blocked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/canvas.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/checkmark.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/chevron.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/close-9px.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/close.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/container-tab.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/customize.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/desktop-notification-blocked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/desktop-notification.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/developer.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/downloads.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/duplicate-tab.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/edit-copy-without-tracking.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/edit-copy.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/edit-cut.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/edit-delete.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/edit-paste.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/edit-redo.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/edit-select-all.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/edit-undo.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/edit.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/extension-blocked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/extension.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/firefox-view.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/firefox.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/folder.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/folderDarkOutline.svg:
--------------------------------------------------------------------------------
1 |
5 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/folderFluentYellow.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/forget.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/forward.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/fullscreen-exit.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/fullscreen.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/geo-blocked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/geo.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/help.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/history.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/home.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/image-copy.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/image-open.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/chrome/icons/image-save.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/info.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/inspect.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/library.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/link.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/mail.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/manage.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/media-loop.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/media-mute.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/media-pause.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/media-pip.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/media-play.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/media-speed.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/media-unmute.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/menu.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/microphone-blocked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/microphone.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/midi.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/move-tab.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/new-tab-image.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/chrome/icons/new-tab.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/open.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/page-portrait.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/passwords.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/paste-and-go.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/permissions.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/persistent-storage-blocked.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/persistent-storage.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/pin.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/plus.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/pocket-outline.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/popup.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/print.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/private-window.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/privateBrowsing.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/reader-mode.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/reload-to-stop.svg:
--------------------------------------------------------------------------------
1 |
2 |
29 |
--------------------------------------------------------------------------------
/chrome/icons/reload.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/report.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/save.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/screen-blocked.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/screen.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/screenshot.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/search-glass.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/search-page.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/security-broken.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/security-warning.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/security.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/send-to-device.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/settings.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/share.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/sidebars-right.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/sidebars.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/source-code.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/stop-to-reload.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/chrome/icons/tab-audio-blocked-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/tab-audio-muted-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/tab-audio-playing-small.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/tab.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/tag.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/tool-profiler.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/tracking-protection.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/translate.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/video-open.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/video-save.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/win11-close-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/win11-close.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/win11-maximize.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/win11-minimize.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/chrome/icons/win11-restore.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/window.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/xr-blocked.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/chrome/icons/xr.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/icons/zoom-out.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/chrome/toolbar/findbar.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - findbar.css
2 | * https://github.com/bmFtZQ/edge-frfox */
3 |
4 | /* Findbar text input box. */
5 | .findbar-textbox {
6 | border: 0 !important;
7 | border-radius: var(--toolbarbutton-border-radius) !important;
8 | background-color: var(--toolbar-field-background-color) !important;
9 |
10 | /* Add shadow when in light mode with no theme applied, like the URL bar. */
11 | &:not(:-moz-lwtheme) {
12 | box-shadow: 0 0 4px light-dark(rgb(0 0 0 / .1), transparent) !important;
13 | }
14 |
15 | &:focus {
16 | outline-width: 2px !important;
17 | outline-offset: -1px !important;
18 | }
19 |
20 | &[status="notfound"] {
21 | outline: 2px solid var(--input-error-border-color, #E22850) !important;
22 | outline-offset: -1px !important;
23 | }
24 | }
25 |
26 | /* Prevent focus outline from being cut off on the findbar textbox. */
27 | .findbar-container {
28 | overflow-inline: visible !important;
29 |
30 | /* Add ability to drag window from empty space in the findbar. */
31 | &::after {
32 | content: "";
33 | flex: 1;
34 | align-self: stretch;
35 | margin-block: -6px;
36 | -moz-window-dragging: drag;
37 | }
38 | }
39 |
40 | /* Findbar buttons. */
41 | .findbar-find-previous,
42 | .findbar-find-next,
43 | findbar .close-icon {
44 | border-radius: var(--toolbarbutton-border-radius) !important;
45 |
46 | &:not([disabled]):hover {
47 | background-color: var(--toolbarbutton-hover-background, rgb(190 190 190 / .2)) !important;
48 |
49 | &:active {
50 | background-color: var(--toolbarbutton-active-background, rgb(190 190 190 / .4)) !important;
51 | }
52 | }
53 | }
54 |
55 | /* Rounded corners optimisations. */
56 | @media (-moz-bool-pref: "uc.tweak.rounded-corners") {
57 | findbar {
58 | border: none !important;
59 | margin-bottom: var(--uc-tweak-rounded-corners-padding, 0px) !important;
60 | background-color: transparent !important;
61 | padding-inline: var(--uc-tweak-rounded-corners-padding, 0px) !important;
62 |
63 | &[hidden] {
64 | margin-bottom: calc(var(--uc-tweak-rounded-corners-padding, 0px) - 40px) !important;
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/chrome/toolbar/navbar.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - navbar.css
2 | * https://github.com/bmFtZQ/edge-frfox */
3 |
4 | :root {
5 | --toolbarbutton-border-radius: 6px !important;
6 | --toolbarbutton-inner-padding: 7px !important;
7 | --uc-toolbarbutton-inner-inline-padding: 12px !important;
8 | --toolbarbutton-outer-padding: 2px !important;
9 | --tabs-navbar-shadow-size: 0px !important;
10 | }
11 |
12 | #nav-bar .toolbarbutton-1>.toolbarbutton-icon {
13 | width: calc(2 * var(--uc-toolbarbutton-inner-inline-padding) + 16px) !important;
14 | }
15 |
16 | #nav-bar .toolbarbutton-1>.toolbarbutton-icon,
17 | #nav-bar .toolbarbutton-1>.toolbarbutton-text,
18 | #nav-bar .toolbarbutton-1>.toolbarbutton-badge-stack {
19 | padding-inline: var(--uc-toolbarbutton-inner-inline-padding) !important;
20 | }
21 |
22 | /* move reload/stop icon to middle of button */
23 | #reload-button>.toolbarbutton-animatable-box,
24 | #stop-button>.toolbarbutton-animatable-box {
25 | top: calc(50% - 10px) !important;
26 | }
27 |
28 | #nav-bar-customization-target :where(#reload-button, #stop-button)>.toolbarbutton-icon {
29 | padding: var(--toolbarbutton-inner-padding) var(--uc-toolbarbutton-inner-inline-padding) !important;
30 | }
31 |
32 | toolbar .toolbaritem-combined-buttons {
33 | margin-inline: var(--toolbarbutton-outer-padding) !important;
34 | }
35 |
36 | /* account button */
37 | .browser-toolbar #fxa-toolbar-menu-button,
38 | .browser-toolbar #fxa-toolbar-menu-button>.toolbarbutton-badge-stack,
39 | #fxa-avatar-image {
40 | border-radius: 99px !important;
41 | }
42 |
43 | .browser-toolbar #fxa-toolbar-menu-button>.toolbarbutton-badge-stack {
44 | padding: var(--toolbarbutton-inner-padding) !important;
45 | margin-inline: calc(var(--uc-toolbarbutton-inner-inline-padding) - var(--toolbarbutton-inner-padding)) !important;
46 | }
47 |
48 | #fxa-toolbar-menu-button {
49 | display: flex !important;
50 | }
51 |
52 | #widget-overflow-list>#fxa-toolbar-menu-button #fxa-avatar-image {
53 | scale: 1.25 !important;
54 | }
55 |
56 | .customization-target>#fxa-toolbar-menu-button #fxa-avatar-image {
57 | scale: 1.5 !important;
58 | }
59 |
60 | /* button background transition */
61 | @media not (prefers-reduced-motion) {
62 | .toolbarbutton-1>.toolbarbutton-icon,
63 | .toolbarbutton-1>.toolbarbutton-text,
64 | .toolbarbutton-1>.toolbarbutton-badge-stack,
65 | :not(.panel-subview-body>toolbaritem)>.bookmark-item:not(menu, menuitem),
66 | .urlbar-page-action,
67 | .identity-box-button,
68 | #tracking-protection-icon-container,
69 | panel button,
70 | panel menulist,
71 | .titlebar-button {
72 | transition: background-color 0.25s ease !important;
73 | }
74 |
75 | .toolbarbutton-1:not([disabled=true]):is([open], [checked], :hover:active)>.toolbarbutton-icon,
76 | .toolbarbutton-1:not([disabled=true]):is([open], [checked], :hover:active)>.toolbarbutton-text,
77 | .toolbarbutton-1:not([disabled=true]):is([open], [checked], :hover:active)>.toolbarbutton-badge-stack,
78 | :not(.panel-subview-body>toolbaritem)>.bookmark-item:not(menu, menuitem):not([disabled=true]):is([open], [checked], :hover:active),
79 | .urlbar-page-action:not([disabled=true]):is([open], [checked], :hover:active),
80 | .identity-box-button:not([disabled=true]):is([open], [checked], :hover:active),
81 | #tracking-protection-icon-container:not([disabled=true]):is([open], [checked], :hover:active),
82 | panel button:not([disabled=true]):is([open], [checked], :hover:active),
83 | panel menulist:not([disabled=true]):is([open], [checked], :hover:active),
84 | .titlebar-button:not([disabled=true]):hover:active {
85 | transition-duration: 0s !important;
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/chrome/toolbar/personalbar.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - personalbar.css
2 | * https://github.com/bmFtZQ/edge-frfox */
3 |
4 | :root {
5 | --bookmark-block-padding: 6px !important;
6 | --bookmark-inline-padding: 8px !important;
7 | --bookmark-block-margin: 2px !important;
8 | --bookmark-inline-margin: 1px !important;
9 | --uc-bookmark-toolbar-padding-bottom: 2px;
10 | --bookmarks-toolbar-overlapping-browser-height: calc(var(--uc-bookmark-toolbar-padding-bottom) + 16px + (var(--bookmark-block-margin) + var(--bookmark-block-padding)) * 2) !important;
11 | }
12 |
13 | #PersonalToolbar {
14 | padding-bottom: var(--uc-bookmark-toolbar-padding-bottom) !important;
15 | }
16 |
17 | /* Bookmarks bar item sizing */
18 | #personal-toolbar-empty-description,
19 | #PersonalToolbar .toolbarbutton-1,
20 | toolbarbutton.bookmark-item:not(.subviewbutton) {
21 | margin-block: var(--bookmark-block-margin) !important;
22 | margin-inline: var(--bookmark-inline-margin) !important;
23 | padding-block: var(--bookmark-block-padding) !important;
24 | padding-inline: var(--bookmark-inline-padding) !important;
25 | font-size: 14px !important;
26 |
27 | /* Adjust vertical label position on Windows */
28 | @media (-moz-platform: windows) {
29 | & .toolbarbutton-text {
30 | margin-block: -1px 0 !important;
31 | }
32 | }
33 | }
34 |
35 | #PersonalToolbar .toolbarbutton-1 {
36 | padding: 0 !important;
37 | }
38 |
39 | /* Bookmarks bar separators */
40 | #PlacesToolbarItems > toolbarseparator {
41 | padding-inline: calc(3px - var(--bookmark-inline-margin)) !important;
42 | align-items: center !important;
43 |
44 | &::before {
45 | content: "";
46 | border-inline-start: 1px solid var(--toolbarseparator-color) !important;
47 | height: 16px !important;
48 | border-image: none !important;
49 | }
50 |
51 | /* Fractional scaling adjustments (150%, 175%, etc.) */
52 | @media (1dppx < resolution < 2dppx) {
53 | &::before {
54 | border-inline-start-width: 1.5px !important;
55 | }
56 | }
57 | }
58 |
59 | /* Left and Right padding of bookmarks bar */
60 | #PersonalToolbar {
61 | padding-inline: calc(var(--toolbar-start-end-padding) - 2px) calc(var(--toolbar-start-end-padding) + 4px) !important;
62 | }
63 |
64 | /* Spacing between icon and label for bookmarks bar items */
65 | #managed-bookmarks>.toolbarbutton-icon,
66 | #bookmarks-toolbar-placeholder>.toolbarbutton-icon,
67 | #PlacesToolbarItems>.bookmark-item>.toolbarbutton-icon[label]:not([label=""]),
68 | #OtherBookmarks.bookmark-item[container]>.toolbarbutton-icon {
69 | margin-inline-end: 8px !important;
70 | }
71 |
72 | /* Sizing for bookmarks bar icons */
73 | #PersonalToolbar .toolbarbutton-1>.toolbarbutton-icon {
74 | width: calc(2 * var(--bookmark-block-padding) + 16px) !important;
75 | height: calc(2 * var(--bookmark-block-padding) + 16px) !important;
76 | padding: var(--bookmark-block-padding) !important;
77 | }
78 |
--------------------------------------------------------------------------------
/chrome/toolbar/tabbar.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - tabbar.css
2 | * https://github.com/bmFtZQ/edge-frfox */
3 |
4 | /* Variables */
5 | :root {
6 | /* Extra space at the top of the window. */
7 | --uc-tab-top-margin: 8px !important;
8 |
9 | /* Remove extra space at the top of the window when in fullscreen or when
10 | * title bars are enabled.
11 | */
12 | &[inFullscreen],
13 | &:not([tabsintitlebar]) {
14 | --uc-tab-top-margin: 0px !important;
15 | }
16 |
17 | /* Remove extra space at the top when the window is maximised or the menu bar
18 | * is active, only on platforms other than macOS.
19 | */
20 | @media not (-moz-platform: macos) {
21 | &[sizemode="maximized"],
22 | & #toolbar-menubar:not([inactive]) + #TabsToolbar,
23 | &:has(#toolbar-menubar:not([inactive])) {
24 | --uc-tab-top-margin: 0px !important;
25 | }
26 | }
27 |
28 | & #TabsToolbar {
29 | --tab-min-height: 32px !important;
30 | --inline-tab-padding: 11px !important;
31 | --uc-inline-pinned-tab-padding: 12px !important;
32 | --tab-border-radius: 4px !important;
33 | --toolbarbutton-inner-padding: 6px !important;
34 | --uc-toolbarbutton-inner-inline-padding: 8px !important;
35 | --toolbarbutton-border-radius: 4px !important;
36 | --tabs-navbar-shadow-size: 0px !important;
37 | --tab-shadow-max-size: 0 !important;
38 | --uc-tab-separator-height: 20px;
39 | --uc-toolbarbutton-block-margin: 2px;
40 | }
41 | }
42 |
43 | /* ::::: Tab transitions ::::: */
44 |
45 | /* Tab grow/shrink transition. */
46 | .tabbrowser-tab:not([pinned]) {
47 | transition-property: min-width, max-width !important;
48 | transition-duration: 150ms !important;
49 | transition-timing-function: cubic-bezier(0, .75, .25, 1) !important;
50 | }
51 |
52 | /* Tab moving transition. */
53 | #tabbrowser-tabs[movingtab] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[fadein]:not([selected]):not([multiselected]),
54 | .tabbrowser-tab[tab-grouping],
55 | .tabbrowser-tab[tabdrop-samewindow] {
56 | transition: transform 200ms cubic-bezier(0, .75, .25, 1) !important;
57 | }
58 |
59 | /* Remove tab toolbar background transition on inactive windows. */
60 | #navigator-toolbox {
61 | transition: none !important;
62 | }
63 |
64 | /* ::::: Tabs toolbar & button appearance ::::: */
65 | /* #region */
66 |
67 | #TabsToolbar {
68 | /* Padding between the edge of the toolbar and its content. */
69 | padding-inline-start: 8px !important;
70 |
71 | /* Remove any existing margins from toolbar buttons. */
72 | & .toolbarbutton-1 {
73 | margin: 0 !important;
74 | }
75 |
76 | /* Tab toolbar button sizing. */
77 | & .toolbarbutton-1 > .toolbarbutton-icon,
78 | & .toolbarbutton-1 > .toolbarbutton-badge-stack {
79 | border-radius: var(--toolbarbutton-border-radius) !important;
80 | padding: var(--toolbarbutton-inner-padding) var(--uc-toolbarbutton-inner-inline-padding) !important;
81 | /* Add margin-block to buttons so they are positioned correctly. */
82 | margin: var(--uc-toolbarbutton-block-margin) 0 !important;
83 | }
84 |
85 | & .toolbarbutton-1 > .toolbarbutton-icon {
86 | width: calc(2 * var(--uc-toolbarbutton-inner-inline-padding) + 16px) !important;
87 | height: calc(2 * var(--toolbarbutton-inner-padding) + 16px) !important;
88 | }
89 |
90 | /* Keep certain buttons (such as new tab) square shaped. */
91 | & #tabs-newtab-button > .toolbarbutton-icon,
92 | & #alltabs-button > .toolbarbutton-badge-stack,
93 | & #tabbrowser-tabs[hasadjacentnewtabbutton][overflow] ~ #new-tab-button > .toolbarbutton-icon {
94 | padding: var(--toolbarbutton-inner-padding) !important;
95 | width: calc(2 * var(--toolbarbutton-inner-padding) + 16px) !important;
96 | }
97 |
98 | /* Toolbar buttons should use the same colour as unselected tabs. */
99 | & .toolbarbutton-animatable-box,
100 | & .toolbarbutton-1 {
101 | fill: currentColor !important;
102 | }
103 |
104 | & #TabsToolbar-customization-target {
105 | /* Vertically align toolbar buttons to the bottom of the tab bar. */
106 | align-items: end !important;
107 |
108 | /* Reduce space between start of the window and first toolbar button. */
109 | & > .toolbarbutton-1:nth-child(1 of .toolbarbutton-1:not(#tabbrowser-tabs ~ *)) {
110 | margin-inline-start: -2px !important;
111 | }
112 |
113 | /* Add space after the last toolbar button before the tabs. */
114 | & > .toolbarbutton-1:nth-last-child(1 of .toolbarbutton-1:not(#tabbrowser-tabs ~ *)),
115 | :root[privatebrowsingmode] & > .toolbarbutton-1:nth-last-child(1 of .toolbarbutton-1:not(#tabbrowser-tabs ~ *):not(#firefox-view-button)) {
116 | margin-inline-end: 4px !important;
117 |
118 | /* Reduces space between this button and the tab scroll button when
119 | * overflowed for consistency.
120 | */
121 | &:has(~ #tabbrowser-tabs[overflow]) {
122 | margin-inline-end: 2px !important;
123 | }
124 | }
125 | }
126 | }
127 |
128 | #tabbrowser-tabs {
129 | /* Remove the border from the left of the tab bar. */
130 | border-inline: none !important;
131 | padding-inline-start: var(--tab-overflow-pinned-tabs-width) !important;
132 |
133 | /* Add space above the tabs. */
134 | margin-top: var(--uc-tab-top-margin) !important;
135 |
136 | /* Pull tabs closer to toolbar buttons when overflowed. */
137 | &[overflow]:not([haspinnedtabs]) {
138 | margin-inline-start: -2px !important;
139 | }
140 |
141 | /* Remove gap between pinned and unpinned tabs. */
142 | &[haspinnedtabs]:not([positionpinnedtabs]) .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) {
143 | margin-inline-start: 0 !important;
144 | }
145 | }
146 |
147 | /* Add space between last tab and new tab button. */
148 | #tabbrowser-tabs #tabs-newtab-button {
149 | margin-inline-start: 2px !important;
150 | }
151 |
152 | /* Tab scrolling buttons. */
153 | #scrollbutton-up:not(.menupopup-scrollbutton),
154 | #scrollbutton-down:not(.menupopup-scrollbutton) {
155 | border-width: 2px !important;
156 | border-radius: calc(var(--toolbarbutton-border-radius) + 2px) !important;
157 | padding-inline: calc(var(--toolbarbutton-inner-padding) - 4px) !important;
158 | padding-block: var(--toolbarbutton-inner-padding) !important;
159 | }
160 |
161 | /* Add margin to the side of the button facing the tabs so the buttons line up
162 | * on the opposite side with others in the toolbar.
163 | */
164 | #scrollbutton-up:not(.menupopup-scrollbutton) {
165 | margin-inline: 0 2px !important;
166 | }
167 |
168 | #scrollbutton-down:not(.menupopup-scrollbutton) {
169 | margin-inline: 2px 0 !important;
170 | }
171 |
172 | /* Hide pre-tabs spacer as it isn't needed. */
173 | .titlebar-spacer[type="pre-tabs"] {
174 | display: none !important;
175 | }
176 |
177 | /* Make sure that the post-tabs spacer appears. */
178 | .titlebar-spacer[type="post-tabs"] {
179 | display: flex !important;
180 | }
181 |
182 | /* macOS titlebar buttons positioning. */
183 | @media (-moz-platform: macos) {
184 | /* Compensate for padding added to the Tabs Toolbar. */
185 | .titlebar-buttonbox-container {
186 | margin-inline-start: -8px !important;
187 |
188 | /* Make sure that titlebar buttons have equal spacing on all sides. */
189 | & .titlebar-buttonbox {
190 | margin-inline: calc((var(--tab-min-height) + var(--uc-tab-top-margin) - 14px) / 2) !important;
191 | }
192 | }
193 | }
194 |
195 | /* Linux titlebar button positioning. */
196 | @media (-moz-platform: linux) {
197 | .titlebar-buttonbox-container {
198 | /* Add space between buttons and other toolbar buttons. */
199 | margin-inline: 8px 0 !important;
200 |
201 | @media (-moz-gtk-csd-reversed-placement) {
202 | /* Compensate for padding added to the Tabs Toolbar. */
203 | margin-inline: -8px 8px !important;
204 | }
205 | }
206 | }
207 | /* #endregion */
208 |
209 |
210 | /* ::::: Tab appearance ::::: */
211 | /* #region */
212 |
213 | .tabbrowser-tab {
214 | font-size: 12px !important;
215 | padding-inline: 0 !important;
216 | /* Allow shadows to appear outside the tabs. */
217 | overflow-clip-margin: 8px !important;
218 |
219 | /* Set width of tabs. */
220 | &:not([pinned], [style*="max-width"])[fadein] {
221 | max-width: 240px !important;
222 | }
223 |
224 | /* Enforce tab foreground colour. */
225 | &:is([visuallyselected], [multiselected]) {
226 | color: var(--tab-selected-textcolor) !important;
227 |
228 | &:-moz-window-inactive {
229 | color: var(--tab-selected-textcolor-inactive, var(--tab-selected-textcolor)) !important;
230 | }
231 | }
232 | }
233 |
234 | /* Tab inner content padding. */
235 | .tab-content {
236 | padding-inline: var(--inline-tab-padding) 0 !important;
237 |
238 | /* Pinned tab padding. */
239 | &[pinned] {
240 | padding: 0 var(--uc-inline-pinned-tab-padding) !important;
241 | }
242 |
243 | /* Indicator for when the title of a pinned tab changes. */
244 | &[pinned][titlechanged]:not([selected]),
245 | .tabbrowser-tab:is([image], [pinned]) &[attention]:not([selected]) {
246 | background-position: center bottom 2px !important;
247 | }
248 | }
249 |
250 | /* Space between tab icons and the tab titles. */
251 | .tab-throbber:not([pinned]),
252 | .tab-icon-pending:not([pinned]),
253 | .tab-icon-image:not([pinned]),
254 | .tab-sharing-icon-overlay:not([pinned]) {
255 | margin-inline-end: calc(var(--inline-tab-padding) - 1px) !important;
256 | }
257 |
258 | /* Make sure that the tabs are the correct height. */
259 | #tabbrowser-tabs .tab-label-container {
260 | height: var(--tab-min-height) !important;
261 |
262 | /* Hide tab audio indicator label. */
263 | & .tab-secondary-label {
264 | display: none !important;
265 | }
266 | }
267 |
268 | /* Tab close button styling. */
269 | .tab-close-button {
270 | margin-inline-end: 8px !important;
271 | width: 17px !important;
272 | height: 17px !important;
273 | padding: 4px !important;
274 | border-radius: var(--toolbarbutton-border-radius) !important;
275 | }
276 |
277 | /* Ensure that unselected tabs use full opacity and correct colours.
278 | * Also ensures that the tab's icon is always visible.
279 | */
280 | .tab-label-container:not([selected="true"], [multiselected]),
281 | .tab-icon-stack[indicator-replaces-favicon] > :not(.tab-icon-overlay) {
282 | opacity: 1 !important;
283 | }
284 |
285 | /* Change width of the gradient mask located on the right of the tab labels. */
286 | #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab .tab-label-container {
287 | --tab-label-mask-size: 1em !important;
288 | }
289 |
290 | /* Tab container indicator. */
291 | .tabbrowser-tab[usercontextid] {
292 | & .tab-context-line {
293 | height: 2px !important;
294 | border-radius: 2px !important;
295 | margin: 2px 7px 0 !important;
296 | }
297 |
298 | &[selected] .tab-context-line {
299 | margin-inline: 9px !important;
300 | }
301 | }
302 |
303 | /* ::::: Tab audio indicator ::::: */
304 |
305 | /* Move the audio indicator to the right of the tab's icon. */
306 | #tabbrowser-tabs:not([closebuttons="activetab"]) .tab-icon-overlay:not([pinned]) {
307 | margin-inline: 22px 6px !important;
308 | }
309 |
310 | /* When there is no tab icon, move indicator to the left. */
311 | #tabbrowser-tabs .tabbrowser-tab:not([image]) .tab-icon-overlay:not([pinned]) {
312 | margin-inline: 0px 6px !important;
313 | }
314 |
315 | /* Overlay the audio indicator onto the tab icon when there isn't enough space. */
316 | .tab-icon-overlay:not([crashed]):is([pinned], [sharing]),
317 | #tabbrowser-tabs[closebuttons="activetab"] .tab-icon-overlay:not([crashed]) {
318 | top: -5.5px !important;
319 | inset-inline-end: -6px !important;
320 | }
321 |
322 | /* Set colour for the overlay tab audio indicator. */
323 | #tabbrowser-tabs[closebuttons="activetab"] {
324 | & .tab-icon-overlay:is([soundplaying], [muted], [activemedia-blocked]):not([crashed]) {
325 | stroke: var(--tab-icon-overlay-stroke, light-dark(white, black)) !important;
326 | color: var(--tab-icon-overlay-fill, light-dark(black, white)) !important;
327 | fill-opacity: 1 !important;
328 |
329 | &:hover {
330 | background-color: var(--tab-icon-overlay-stroke, light-dark(white, black)) !important;
331 | }
332 | }
333 | }
334 |
335 | /* Add border radius to the tab audio indicator. */
336 | .tab-icon-overlay:is([soundplaying], [muted], [activemedia-blocked]):not([crashed]) {
337 | border-radius: var(--toolbarbutton-border-radius) !important;
338 | padding: 0 !important;
339 | }
340 |
341 | /* Ensure the audio indicator is visible when needed. */
342 | .tab-icon-stack:is([soundplaying], [muted], [activemedia-blocked]) > .tab-icon-overlay {
343 | opacity: 1 !important;
344 | }
345 | /* #endregion */
346 |
347 |
348 | /* ::::: Tab background and bottom rounded corners ::::: */
349 | /* #region */
350 |
351 | .tab-background {
352 | border-radius: var(--tab-border-radius);
353 | border-bottom-left-radius: 0 !important;
354 | border-bottom-right-radius: 0 !important;
355 | margin-block: 0 !important;
356 | border: 0 !important;
357 | position: relative !important;
358 | --uc-tab-corner-bg: transparent;
359 | --uc-tab-corner-outline: transparent;
360 |
361 | /* Both rounded bottom corners. */
362 | &::before,
363 | &::after {
364 | content: "" !important;
365 | position: absolute !important;
366 | width: var(--tab-border-radius) !important;
367 | aspect-ratio: 1 / 1;
368 | bottom: 0 !important;
369 | pointer-events: none !important;
370 | clip-path: inset(0);
371 | }
372 |
373 | /* Bottom left corner. */
374 | &::before {
375 | border-bottom-right-radius: var(--tab-border-radius) !important;
376 | left: 0 !important;
377 | translate: calc(-1 * var(--tab-border-radius)) 0 !important;
378 | box-shadow:
379 | /* First shadow is a 1px outline for better theming support. */
380 | -1px -1px var(--uc-tab-corner-outline) inset,
381 | /* Second shadow is to add the background colour to the corner. */
382 | 0 0 0 var(--tab-border-radius) var(--uc-tab-corner-bg) !important;
383 | }
384 |
385 | /* Bottom right corner. */
386 | &::after {
387 | border-bottom-left-radius: var(--tab-border-radius) !important;
388 | right: 0 !important;
389 | translate: var(--tab-border-radius) 0 !important;
390 | box-shadow:
391 | /* First shadow is a 1px outline for better theming support. */
392 | 1px -1px var(--uc-tab-corner-outline) inset,
393 | /* Second shadow is to add the background colour to the corner. */
394 | 0 0 0 var(--tab-border-radius) var(--uc-tab-corner-bg) !important;
395 | }
396 |
397 | /* Make sure that the bottom corners have the same background colour. */
398 | &:is([selected], [multiselected]) {
399 | --uc-tab-corner-bg: var(--tab-selected-bgcolor, var(--lwt-selected-tab-background-color, var(--toolbar-bgcolor)));
400 | --uc-tab-corner-outline: var(--lwt-tab-line-color, transparent);
401 | /* Disable tab outlines when selected. */
402 | outline: none !important;
403 | }
404 |
405 | /* Tab hover background colour. */
406 | .tabbrowser-tab:hover &:not([selected], [multiselected]) {
407 | background-color: color-mix(in srgb, currentColor 8%, transparent) !important;
408 | --uc-tab-corner-bg: color-mix(in srgb, currentColor 8%, transparent) !important;
409 |
410 | /* When in light mode, the hover colour should be white. */
411 | #TabsToolbar:not([brighttext]) & {
412 | background-color: rgb(255 255 255 / .3) !important;
413 | --uc-tab-corner-bg: rgb(255 255 255 / .3) !important;
414 |
415 | @media (-moz-bool-pref: "uc.tweak.floating-tabs") {
416 | background-color: var(--toolbar-bgcolor) !important;
417 | --uc-tab-corner-bg: var(--toolbar-bgcolor) !important;
418 | }
419 | }
420 | }
421 |
422 | /* When tabs are selected but not active, they should have a partially
423 | * transparent background.
424 | */
425 | #tabbrowser-tabs &[multiselected]:not([selected]) {
426 | box-shadow: none !important;
427 | opacity: 0.7 !important;
428 | }
429 | }
430 |
431 | /* Disable bottom left rounded corner to prevent overlapping transparent tabs.
432 | *
433 | * If a tab is selected, then the next tab's bottom-left corner should be
434 | * inverted to prevent overlap with the transparent backgrounds.
435 | *
436 | * If the next tab is hidden, then find the next visible tab which would be
437 | * positioned next to the active tab.
438 | */
439 | .tabbrowser-tab:is([selected], [multiselected]):not([hidden]) {
440 | & + .tabbrowser-tab .tab-background:not([selected]),
441 | & + .tabbrowser-tab[hidden] ~ .tabbrowser-tab:not([hidden]):is([hidden] + *) .tab-background:not([selected]) {
442 | border-bottom-left-radius: var(--tab-border-radius) !important;
443 |
444 | &::before {
445 | --uc-tab-corner-bg: transparent !important;
446 | }
447 | }
448 | }
449 | /* #endregion */
450 |
451 |
452 | /* ::::: Tab separators ::::: */
453 | /* #region */
454 |
455 | .tabbrowser-tab .tab-stack {
456 | /* Both side separators. */
457 | &::before,
458 | &::after {
459 | content: "";
460 | position: absolute;
461 | height: var(--uc-tab-separator-height);
462 | inset-block: 0;
463 | margin-block: auto;
464 | border-left: 1px solid transparent;
465 |
466 | }
467 |
468 | /* Fractional scaling adjustments (150%, 175%, etc.) */
469 | @media (1dppx < resolution < 2dppx) {
470 | &::before,
471 | &::after {
472 | border-left-width: 1.5px !important;
473 | }
474 | }
475 |
476 | /* Left side separators. */
477 | &::before {
478 | left: 0;
479 | }
480 |
481 | /* Right side separators. */
482 | &::after {
483 | right: 0;
484 | }
485 | }
486 |
487 | /* Set separator color and add separator for last visible tab. */
488 | .tabbrowser-tab:not([selected], [multiselected], :hover) {
489 | /* All tabs. */
490 | & .tab-stack::before,
491 | /* Last visible tab. */
492 | &:nth-last-child(1 of .tabbrowser-tab:not([hidden])) .tab-stack::after,
493 | /* Last visible pinned tab when overflowed. */
494 | #tabbrowser-tabs[overflow] &:nth-last-child(1 of .tabbrowser-tab[pinned]:not([hidden])) .tab-stack::after {
495 | border-color: color-mix(in srgb, currentColor 34%, transparent);
496 | }
497 | }
498 |
499 | /* Hide tab separator when previous tab is hovered or selected.
500 | *
501 | * If a tab is selected, then the next tab's left separator should be hidden.
502 | *
503 | * If the next tab is hidden, then find the next visible tab.
504 | */
505 | .tabbrowser-tab:is([selected], [multiselected], :hover):not([hidden]) {
506 | & + .tabbrowser-tab .tab-stack::before,
507 | & + .tabbrowser-tab[hidden] ~ .tabbrowser-tab:not([hidden]):is([hidden] + *) .tab-stack::before {
508 | border-color: transparent !important;
509 | }
510 | }
511 |
512 | /* Hide the first tab's separator for specific buttons before the tabs.
513 | *
514 | * If in private browsing mode, the Firefox View button is hidden, so the
515 | * separator should also be hidden as long as there are no other buttons before
516 | * it. If the Firefox account button is just before the tabs, then the separator
517 | * should stay hidden.
518 | *
519 | * If the button directly before the tabs is the Firefox account button, the
520 | * separator should be hidden.
521 | *
522 | * If there are no buttons before the tabs, hide the separator.
523 | */
524 | :root[privatebrowsingmode] #firefox-view-button + #tabbrowser-tabs:not(.toolbarbutton-1:not(#fxa-toolbar-menu-button) + #firefox-view-button + #tabbrowser-tabs),
525 | #fxa-toolbar-menu-button + #tabbrowser-tabs,
526 | #tabbrowser-tabs:first-child {
527 | & .tabbrowser-tab:nth-child(1 of .tabbrowser-tab:not([hidden])) .tab-stack::before {
528 | border-color: transparent !important;
529 | }
530 | }
531 | /* #endregion */
532 |
533 |
534 | /* ::::: Tab shadows ::::: */
535 | /* #region */
536 |
537 | /* Tab and toolbar shadows. */
538 | :root,
539 | :root .tabbrowser-tab {
540 | /* Light mode shadows. */
541 | --uc-titlebar-shadow:
542 | 0 -1px var(--tabs-navbar-shadow-color, transparent) inset,
543 | 0 -3px 2px -3px rgb(0 0 0 / .2) inset;
544 | --uc-tab-shadow:
545 | 0 0 0 1px var(--lwt-tab-line-color, transparent),
546 | 0 4px 5px rgb(0 0 0 / .21),
547 | 0 0px 2px rgb(0 0 0 / .18);
548 |
549 | & [brighttext],
550 | & [brighttext] .tabbrowser-tab {
551 | /* Dark mode shadows. */
552 | --uc-titlebar-shadow:
553 | 0 -1px var(--tabs-navbar-shadow-color, transparent) inset,
554 | 0 -3px 2px -3px rgb(0 0 0 / .7) inset;
555 | --uc-tab-shadow:
556 | 0 0 0 1px var(--lwt-tab-line-color, transparent),
557 | 0 5px 7px rgb(0 0 0 / .44),
558 | 0 0px 2px rgb(0 0 0 / .7);
559 | }
560 | }
561 |
562 | /* Apply tab shadows. */
563 | #tabbrowser-tabs .tab-background:is([selected], [multiselected]),
564 | #TabsToolbar #firefox-view-button[open] > .toolbarbutton-icon {
565 | box-shadow: var(--uc-tab-shadow) !important;
566 | }
567 |
568 | /* Apply toolbar shadows. */
569 | #TabsToolbar {
570 | box-shadow: var(--uc-titlebar-shadow) !important;
571 | }
572 |
573 | /* Prevent interference with context menu arrowscrollbox. */
574 | #tabbrowser-arrowscrollbox {
575 | --uc-padding-top: 4px;
576 | --uc-margin-top: -4px;
577 | --uc-padding-inline-end: var(--tab-border-radius)
578 | }
579 |
580 | /* Make room for the tab shadows so they aren't clipped at the top. */
581 | .scrollbox-clip > scrollbox {
582 | padding-top: var(--uc-padding-top, 0) !important;
583 | margin-top: var(--uc-margin-top, 0) !important;
584 | /* Used to fix tab overflow issue with rounded corners. */
585 | padding-inline-end: var(--uc-padding-inline-end, 0) !important;
586 | }
587 |
588 | /* Add some room horizontally for the tab shadows and rounded corners. */
589 | #tabbrowser-tabs {
590 | &:not([overflow]) {
591 | margin-inline-start: -8px !important;
592 | margin-inline-end: calc(-1 * var(--tab-border-radius)) !important;
593 |
594 | #tabbrowser-arrowscrollbox .tabbrowser-tab:nth-child(1 of .tabbrowser-tab:not([hidden])) {
595 | margin-inline-start: 8px !important;
596 | }
597 | }
598 | }
599 |
600 | /* Clip the bottom of the tabs so the shadows don't bleed into other areas. */
601 | #tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] {
602 | clip-path: inset(-8px -8px 0) !important;
603 | }
604 | /* #endregion */
605 |
606 |
607 | /* ::::: Private browsing indicator ::::: */
608 | /* #region */
609 |
610 | :root[privatebrowsingmode="temporary"] {
611 | /* Move the other content in the Tabs Toolbar in-front of the indicator. */
612 | & #TabsToolbar .toolbar-items,
613 | & #TabsToolbar .titlebar-buttonbox-container {
614 | position: relative;
615 | z-index: 1;
616 | }
617 |
618 | /* Hide the post tab spacer as it is not needed. */
619 | .titlebar-spacer[type="post-tabs"] {
620 | display: none !important;
621 | }
622 | }
623 |
624 | /* String for the custom label. */
625 | :root,
626 | :root[lang^="en"] {
627 | --uc-string-private: "Private";
628 | }
629 |
630 | /* Appearance & sizing for the private browsing indicator. */
631 | #private-browsing-indicator-with-label {
632 | position: relative !important;
633 | isolation: isolate;
634 | font-size: 12px;
635 |
636 | /* Allow space for the gradient to underlay other toolbar items. */
637 | margin-inline: -16px -16px !important;
638 | padding-inline: 32px 24px !important;
639 | color: var(--button-primary-color, var(--toolbar-bgcolor)) !important;
640 | text-shadow: none !important;
641 | background: var(--uc-gradient);
642 | --uc-bg-color: var(--button-primary-bgcolor, var(--toolbarbutton-icon-fill-attention));
643 |
644 | /* Primay gradient, fades to transparent on the left. */
645 | --uc-gradient: linear-gradient(to right, transparent, var(--uc-bg-color) 35%);
646 |
647 | /* Alternate gradient, fades to transparent on both sides. */
648 | --uc-gradient-alt: linear-gradient(to right, transparent, var(--uc-bg-color) 25%, var(--uc-bg-color) 75%, transparent);
649 |
650 | /* If the titlebar buttons are on the right, then use the alternate gradient
651 | * if the menu bar is not permanently enabled.
652 | */
653 | @media (-moz-platform: windows),
654 | (-moz-gtk-csd-available) and (not (-moz-gtk-csd-reversed-placement)) {
655 | :root[tabsintitlebar] #toolbar-menubar:not([autohide="false"]) ~ #TabsToolbar & {
656 | background: var(--uc-gradient-alt);
657 | }
658 | }
659 |
660 | /* Private browsing icon size. */
661 | & .private-browsing-indicator-icon {
662 | height: 24px !important;
663 | width: 24px !important;
664 | }
665 |
666 | /* Change "Private Browsing" text to "Private" (English locale only). */
667 | :root:is([lang^="en"]) & {
668 | /* Hide original label. */
669 | & > label {
670 | display: none !important;
671 | }
672 |
673 | /* Add custom "Private" label. */
674 | &::after {
675 | content: var(--uc-string-private);
676 | margin-block: 1px 2px;
677 | margin-inline: 6px 5px;
678 | }
679 | }
680 | }
681 | /* #endregion */
682 |
--------------------------------------------------------------------------------
/chrome/toolbar/urlbar.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - urlbar.css
2 | * https://github.com/bmFtZQ/edge-frfox */
3 |
4 | /* Variables */
5 | :root {
6 | --urlbar-min-height: 30px !important;
7 | --urlbarView-item-inline-padding: calc(1px + var(--uc-urlbar-inline-padding) + var(--uc-urlbar-icon-inline-padding)) !important;
8 | --urlbar-icon-border-radius: 6px !important;
9 | --urlbar-icon-padding: calc(var(--toolbarbutton-inner-padding) - 2px) !important;
10 | --urlbar-margin-inline: 6px !important;
11 | --identity-box-margin-inline: 6px !important;
12 |
13 |
14 | /* -------------------------- */
15 |
16 | /* --uc-urlbar-icon-inline-padding: calc(var(--uc-toolbarbutton-inner-inline-padding) - 2px);
17 | --uc-urlbar-inline-padding: 6px; */
18 |
19 |
20 | --uc-urlbar-icon-inline-padding: var(--uc-toolbarbutton-inner-inline-padding);
21 | --uc-urlbar-inline-padding: 5px;
22 |
23 | /* -------------------------- */
24 |
25 |
26 |
27 | --uc-urlbar-shadow: 0 0 4px rgb(0 0 0 / .1);
28 | --urlbarView-rich-suggestion-default-icon-size: 32px !important;
29 |
30 | /* urlbar height */
31 | & #urlbar-container {
32 | --urlbar-container-height: calc(8px + 16px + var(--toolbarbutton-inner-padding) * 2) !important;
33 | }
34 |
35 | & #urlbar {
36 | --urlbar-toolbar-height: calc(8px + 16px + var(--toolbarbutton-inner-padding) * 2) !important;
37 | --urlbar-height: calc(16px + var(--toolbarbutton-inner-padding) * 2) !important;
38 | --urlbar-min-height: calc(16px + var(--toolbarbutton-inner-padding) * 2) !important;
39 | }
40 |
41 | /* Spacing for urlbar suggestion icons. */
42 | .urlbarView-row {
43 | --urlbarView-icon-margin-start: 0px !important;
44 | --urlbarView-icon-margin-end: calc(var(--uc-urlbar-icon-inline-padding) + var(--identity-box-margin-inline)) !important;
45 | }
46 | }
47 |
48 | /* Appearance for URL bar. */
49 | #urlbar-background,
50 | #searchbar {
51 | border-radius: 8px !important;
52 | /* border-radius: calc(var(--urlbar-icon-border-radius) + 2px) !important; */
53 | /* Shadow for URL bar, only appears in light mode. */
54 | :root:not(:-moz-lwtheme) #nav-bar:not([brighttext]) & {
55 | box-shadow: var(--uc-urlbar-shadow, none);
56 | }
57 |
58 | /* Appearance when the URL bar is expanded. */
59 | #urlbar[open] & {
60 | border-radius: 8px !important;
61 | border-color: transparent !important;
62 | box-shadow: 0 10px 16px rgb(0 0 0 / 0.18), 0 3px 5px rgb(0 0 0 / 0.33) !important;
63 | outline: 0.5px solid var(--arrowpanel-border-color) !important;
64 |
65 | &:not(:-moz-lwtheme) {
66 | outline-color: var(--panel-separator-color) !important;
67 | }
68 | }
69 | }
70 |
71 | /* Add padding to sides of URL bar. */
72 | #urlbar-input-container,
73 | #searchbar {
74 | padding-inline: var(--uc-urlbar-inline-padding) !important;
75 | }
76 |
77 | /* URL bar suggestions container. */
78 | .urlbarView {
79 | margin-inline: 0 !important;
80 | width: 100% !important;
81 | border-inline: 0 !important;
82 | padding-block: 0 !important;
83 |
84 | & .urlbarView-body-inner {
85 | width: 100% !important;
86 | margin-inline: 0 !important;
87 | }
88 |
89 | /* Remove padding from top of URL bar results, not needed as URL bar input already has padding. */
90 | & .urlbarView-results {
91 | padding-block-start: 0 !important;
92 | }
93 | }
94 |
95 | /* URL bar item. */
96 | .urlbarView-row {
97 | padding-block: 0 !important;
98 | border: none !important;
99 | border-radius: 0 !important;
100 |
101 | & .urlbarView-row-inner {
102 | padding-block: 8px !important;
103 | }
104 |
105 | /* Vertically align search suggestion thumbnail images. */
106 | &[rich-suggestion] > .urlbarView-row-inner > .urlbarView-favicon {
107 | margin-inline-start: calc(var(--urlbarView-icon-margin-start) + (16px - var(--urlbarView-rich-suggestion-default-icon-size)) / 2) !important;
108 | margin-inline-end: calc(var(--urlbarView-icon-margin-end) + (16px - var(--urlbarView-rich-suggestion-default-icon-size)) / 2) !important;
109 | }
110 | }
111 |
112 | /* Add highlighted marker to the left of selected URL bar items. */
113 | .urlbarView-row:not([type="tip"], [type="dynamic"])[selected] > .urlbarView-row-inner,
114 | .urlbarView-row-inner[selected] {
115 | box-shadow: 3px 0 var(--uc-urlbarView-accent-color, var(--toolbar-field-focus-border-color)) inset !important;
116 | }
117 |
118 | /* Keep URL bar in place when expanding. */
119 | #urlbar[breakout][breakout-extend] {
120 | left: 0 !important;
121 | width: 100% !important;
122 | }
123 |
124 | /* Search engine selector */
125 | .search-one-offs:not([hidden]) {
126 | padding-block: 6px !important;
127 |
128 | & .searchbar-engine-one-off-item {
129 | min-width: 30px !important;
130 | height: 30px !important;
131 | }
132 |
133 | .urlbarView:not([noresults]) > & {
134 | border-color: var(--urlbarView-separator-color) !important;
135 | }
136 |
137 | #urlbar-anon-search-settings {
138 | margin-inline-end: 8px !important;
139 | }
140 | }
141 |
142 | /* Search engine indicator. */
143 | #urlbar-search-mode-indicator {
144 | :root:not(:-moz-lwtheme) & {
145 | background-color: var(--urlbar-box-hover-bgcolor) !important;
146 | }
147 |
148 | & #urlbar-search-mode-indicator-title {
149 | font-size: 0.9em !important;
150 | }
151 | }
152 |
153 | /* Remove border between URL bar input and suggestions. */
154 | #urlbar[open] > .urlbarView > .urlbarView-body-outer > .urlbarView-body-inner {
155 | border-top: 0 !important;
156 | }
157 |
158 | /* Buttons inside the URL bar. */
159 | .urlbar-page-action,
160 | #urlbar-go-button,
161 | .search-go-button,
162 | #tracking-protection-icon-container,
163 | #identity-icon-box {
164 | padding-inline: var(--uc-urlbar-icon-inline-padding) !important;
165 | width: calc(var(--uc-urlbar-icon-inline-padding) * 2 + 16px) !important;
166 | }
167 |
168 | /* Site information and Permissions buttons. */
169 | #identity-icon-box,
170 | #identity-permission-box,
171 | .notification-anchor-icon {
172 | padding-inline: var(--uc-urlbar-icon-inline-padding) !important;
173 | }
174 |
175 | /* Zoom level and tab container indicators. */
176 | #userContext-icons,
177 | #urlbar-zoom-button {
178 | padding-inline: var(--uc-urlbar-icon-inline-padding) !important;
179 | margin-block: 0 !important;
180 | margin-inline: 0 !important;
181 | }
182 |
183 | /* Move tracking protection button. */
184 | #tracking-protection-icon-container,
185 | #page-action-buttons {
186 | order: 2 !important;
187 | }
188 |
189 | /* Hide tracking protection button when not hovering over URL bar. */
190 | #urlbar-container:not(:hover) #tracking-protection-icon-container:not([open]) {
191 | visibility: collapse !important;
192 | }
193 |
194 | /* Focus border for URL bar. */
195 | #urlbar[focused="true"]:not([suppress-focus-border]) > #urlbar-background,
196 | #searchbar:focus-within {
197 | outline-offset: calc(var(--focus-outline-width) * -1 + 1px) !important;
198 | }
199 |
200 | /* Pin icon for URL bar suggested sites. */
201 | .urlbarView-row[pinned] > .urlbarView-row-inner > .urlbarView-no-wrap > .urlbarView-type-icon {
202 | fill: var(--toolbar-field-color) !important;
203 | }
204 |
205 | #urlbar-input::placeholder,
206 | .searchbar-textbox::placeholder {
207 | opacity: 0.6 !important;
208 | }
209 |
210 | /* Make the lock icon brighter in dark mode. */
211 | #nav-bar[brighttext] #identity-box:not([pageproxystate="invalid"]) #identity-icon {
212 | fill-opacity: calc(var(--urlbar-icon-fill-opacity) * 1.8) !important;
213 | }
214 |
215 | /* Make the URL bar label opaque in light mode, matching the icons. */
216 | #nav-bar:not([brighttext]) #identity-box #identity-icon-label {
217 | opacity: var(--urlbar-icon-fill-opacity) !important;
218 | }
219 |
220 | /* Label on the left of the URL bar, shown when viewing Firefox or extension pages. */
221 | #identity-box[pageproxystate="valid"]:is(.notSecureText, .chromeUI, .extensionPage) > .identity-box-button {
222 | position: relative;
223 | width: unset !important;
224 |
225 | /* Spacing between the icon and label. */
226 | & #identity-icon-label {
227 | padding-inline-start: 8px !important;
228 | }
229 |
230 | /* Separator to the right of the label. */
231 | &::after {
232 | content: "";
233 | position: absolute;
234 | height: 16px;
235 | border-right: 1px solid currentColor;
236 | right: 0;
237 | inset-block: 0;
238 | margin-block: auto;
239 | opacity: 0;
240 | }
241 |
242 | /* Fractional scaling adjustments (150%, 175%, etc.) */
243 | @media (1dppx < resolution < 2dppx) {
244 | &::after {
245 | border-right-width: 1.5px !important;
246 | }
247 | }
248 |
249 | /* Remove background from urlbar box. */
250 | &:not(:hover, [open]) {
251 | background-color: transparent !important;
252 |
253 | /* Separator opacity */
254 | &::after {
255 | opacity: 0.375;
256 | }
257 | }
258 |
259 | /* Fade transition for separator. */
260 | @media not (prefers-reduced-motion) {
261 | &::after {
262 | transition: opacity 0.2s ease;
263 | }
264 | }
265 | }
266 |
--------------------------------------------------------------------------------
/chrome/tweaks/hide-tabs-bar.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox - tweaks/hide-tabs-bar.css
2 | * https://github.com/bmFtZQ/edge-frfox */
3 |
4 | /* Only hide the tabs toolbar if one of the following sidebar extensions is
5 | * active: */
6 | /* Sidebery */
7 | :root:not([customizing]):has(#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"]:not([hidden])),
8 | /* Tree Style Tab */
9 | :root:not([customizing]):has(#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"]:not([hidden])),
10 | /* Tab Center Reborn */
11 | :root:not([customizing]):has(#sidebar-box[sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"]:not([hidden])) {
12 | /* Height of navbar, used for determining height and position of window controls */
13 | --uc-navbar-height: 38px;
14 | /* Drag space next to the window controls, allows you to move the window more easily */
15 | --uc-titlebar-drag-space: 40px;
16 |
17 | /* Hide the tabs */
18 | & #TabsToolbar {
19 | visibility: collapse !important;
20 | }
21 |
22 |
23 |
24 |
25 | /* !!!!!!!!!!!!!!!!!!!! 123+ */
26 | /* Fix issue with missing window controls. */
27 | &[tabsintitlebar] #titlebar {
28 | will-change: auto !important;
29 | }
30 |
31 |
32 |
33 |
34 |
35 | /* Add some padding to the top of the navbar */
36 | &[tabsintitlebar] #nav-bar {
37 | padding-top: var(--uc-tab-top-margin, 0) !important;
38 | }
39 |
40 | /* Set background colour of the menu bar to maintain consistency with the navbar */
41 | @media not (-moz-bool-pref: "uc.tweak.floating-tabs") {
42 | #toolbar-menubar {
43 | background-color: var(--toolbar-bgcolor) !important;
44 | color: var(--toolbar-color) !important;
45 | }
46 | }
47 |
48 | /* Make sure window controls are removed in full screen mode. */
49 | &[inDOMFullscreen] #TabsToolbar .titlebar-buttonbox,
50 | &[inFullscreen] #navigator-toolbox[style*="margin-top"] #TabsToolbar .titlebar-buttonbox {
51 | visibility: collapse !important;
52 | }
53 |
54 | /* macOS specific positioning */
55 | @media (-moz-platform: macos) {
56 | /* Offset navbar contents to make space for the window controls */
57 | &[tabsintitlebar] #nav-bar:not([inFullscreen]) {
58 | padding-left: calc(70px + var(--uc-titlebar-drag-space)) !important;
59 |
60 | /* Remove the padding from the side of the navbar */
61 | & #nav-bar-customization-target > :is(toolbarbutton, toolbaritem):first-child {
62 | padding-inline-start: 0 !important;
63 | }
64 | }
65 |
66 | /* Positioning of the window controls */
67 | #TabsToolbar .titlebar-buttonbox-container {
68 | visibility: visible !important;
69 | position: fixed !important;
70 | height: calc(var(--uc-navbar-height) + var(--uc-tab-top-margin, 0px));
71 | margin: 0 !important;
72 | top: 0;
73 | left: 0;
74 |
75 | & .titlebar-buttonbox {
76 | margin-inline: calc((var(--uc-navbar-height) + var(--uc-tab-top-margin, 0px) - 14px) / 2) !important;
77 | }
78 | }
79 | }
80 |
81 | /* Windows specific positioning */
82 | @media (-moz-platform: windows) {
83 | /* Offset navbar contents to make space for the window controls */
84 | &:where([inFullscreen], [tabsintitlebar]) #nav-bar {
85 | padding-inline-end: calc(140px + var(--uc-titlebar-drag-space)) !important;
86 |
87 | /* Remove the padding from the side of the navbar */
88 | & #PanelUI-menu-button {
89 | padding-inline-end: 0 !important;
90 | }
91 | }
92 |
93 | /* Positioning of the window controls */
94 | & :where(#toolbar-menubar[inactive]) + #TabsToolbar .titlebar-buttonbox {
95 | visibility: visible !important;
96 | position: fixed !important;
97 | top: 0;
98 | inset-inline-end: 0;
99 | height: calc(var(--uc-navbar-height) + var(--uc-tab-top-margin, 0)) !important;
100 | z-index: 100 !important;
101 | color: var(--toolbar-color) !important;
102 | }
103 |
104 | }
105 |
106 | /* Linux/GTK specific positioning, only needed if there is at least one window
107 | * control button. */
108 | @media (-moz-gtk-csd-minimize-button),
109 | (-moz-gtk-csd-maximize-button),
110 | (-moz-gtk-csd-close-button) {
111 | /* Width of single window control button. */
112 | --uc-window-control-btn: 34px;
113 |
114 | /* Navbar space reserved for one button. */
115 | --uc-window-controls-width: var(--uc-window-control-btn);
116 |
117 | /* Navbar space reserved for two buttons. */
118 | @media (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button),
119 | (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-close-button),
120 | (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) {
121 | --uc-window-controls-width: calc(var(--uc-window-control-btn) * 2);
122 | }
123 |
124 | /* Navbar space reserved for three buttons. */
125 | @media (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) {
126 | --uc-window-controls-width: calc(var(--uc-window-control-btn) * 3);
127 | }
128 |
129 | /* Offset navbar contents to make space for the window controls */
130 | &:where([inFullscreen], [tabsintitlebar]) #nav-bar {
131 | /* Window controls on the right. */
132 | @media not (-moz-gtk-csd-reversed-placement) {
133 |
134 | /* -------------------------- */
135 |
136 | /* padding-inline: 0 calc(var(--uc-window-controls-width, 0px) + var(--uc-titlebar-drag-space)) !important; */
137 |
138 | padding-inline-end: calc(var(--uc-window-controls-width, 0px) + var(--uc-titlebar-drag-space)) !important;
139 |
140 | /* -------------------------- */
141 |
142 | /* Remove the padding from the side of the navbar */
143 | & #PanelUI-menu-button {
144 | padding-inline-end: 0 !important;
145 | }
146 | }
147 |
148 | /* Window controls on the left. */
149 | @media (-moz-gtk-csd-reversed-placement) {
150 |
151 | /* -------------------------- */
152 |
153 | /* padding-inline: calc(var(--uc-window-controls-width, 0px) + var(--uc-titlebar-drag-space)) 0 !important; */
154 |
155 | padding-inline-start: calc(var(--uc-window-controls-width, 0px) + var(--uc-titlebar-drag-space)) !important;
156 |
157 | /* -------------------------- */
158 |
159 | /* Remove the padding from the side of the navbar */
160 | & #nav-bar-customization-target > :is(toolbarbutton, toolbaritem):first-child {
161 | padding-inline-start: 0 !important;
162 | }
163 | }
164 | }
165 |
166 | /* Positioning of the window controls */
167 | & :where(#toolbar-menubar[inactive]) + #TabsToolbar .titlebar-buttonbox {
168 | visibility: visible !important;
169 | position: fixed !important;
170 | top: 0;
171 | height: calc(var(--uc-navbar-height) + var(--uc-tab-top-margin, 0)) !important;
172 | z-index: 100 !important;
173 | inset-inline: auto 0;
174 |
175 | @media (-moz-gtk-csd-reversed-placement) {
176 | inset-inline: 0 auto !important;
177 | }
178 | }
179 | }
180 | }
181 |
--------------------------------------------------------------------------------
/chrome/userChrome.css:
--------------------------------------------------------------------------------
1 | @import url("icons/icons.css");
2 | @import url("toolbar/tabbar.css");
3 | @import url("toolbar/navbar.css");
4 | @import url("toolbar/personalbar.css");
5 | @import url("toolbar/findbar.css");
6 | @import url("toolbar/urlbar.css");
7 | @import url("global/colors.css");
8 | @import url("global/popup.css");
9 | @import url("global/browser.css");
10 | @import url("global/tree.css");
11 |
12 | @import url("global/tweaks.css");
13 | @import url("tweaks/hide-tabs-bar.css") (-moz-bool-pref: "uc.tweak.hide-tabs-bar");
14 | @import url("custom.css");
15 |
16 | /* ------------------------- */
17 | /* Sidebery */
18 | /* 隐藏侧栏的顶栏 */
19 | /* https://github.com/HelgiMagic/FirefoxCSS/blob/main/userChrome.css */
20 | /* https://www.reddit.com/r/FirefoxCSS/comments/197fgeo/firefox_sidebery_arclike_setup/ */
21 |
22 | #sidebar-header {
23 | display: none;
24 | }
25 |
26 | /* #sidebar-splitter {
27 | display: none;
28 | }
29 |
30 | #sidebar-box {
31 | min-width: 300px !important;
32 | max-width: 300px !important;
33 | } */
34 |
35 | /* :root {
36 | --uc-titlebar-drag-space: 0px !important;
37 | } */
--------------------------------------------------------------------------------
/chrome/userContent.css:
--------------------------------------------------------------------------------
1 | /* Edge-Frfox */
2 | @import url("content/common.css");
3 | @import url("content/newtab.css");
4 |
--------------------------------------------------------------------------------
/image-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VincentAzz/FirefoxCustomCSSConfig/4df3bfa5d380223ca41eb85b55e7b273fba04a00/image-1.png
--------------------------------------------------------------------------------
/image-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VincentAzz/FirefoxCustomCSSConfig/4df3bfa5d380223ca41eb85b55e7b273fba04a00/image-2.png
--------------------------------------------------------------------------------
/image-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VincentAzz/FirefoxCustomCSSConfig/4df3bfa5d380223ca41eb85b55e7b273fba04a00/image-3.png
--------------------------------------------------------------------------------
/image-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VincentAzz/FirefoxCustomCSSConfig/4df3bfa5d380223ca41eb85b55e7b273fba04a00/image-4.png
--------------------------------------------------------------------------------
/image-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VincentAzz/FirefoxCustomCSSConfig/4df3bfa5d380223ca41eb85b55e7b273fba04a00/image-5.png
--------------------------------------------------------------------------------
/image-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VincentAzz/FirefoxCustomCSSConfig/4df3bfa5d380223ca41eb85b55e7b273fba04a00/image-6.png
--------------------------------------------------------------------------------
/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VincentAzz/FirefoxCustomCSSConfig/4df3bfa5d380223ca41eb85b55e7b273fba04a00/image.png
--------------------------------------------------------------------------------
/sidebery.css:
--------------------------------------------------------------------------------
1 | #root.root {--ctx-menu-fg: #ccc;}
2 | #root.root {--toolbar-bg: #191a23;}
3 | #root.root {--frame-el-overlay-selected-border: #1f6feb;}
4 | #root.root {--toolbar-el-overlay-selected-border: #1f6feb;}
5 | #root.root {--frame-bg: #191a23;}
6 |
7 |
8 | #root.root {--tabs-height: 32px;}
9 | #root.root {--general-border-radius: 7px;}
10 | #root.root {--general-margin: 5px;}
11 |
12 | /* VSCode Modern Dark #181818 #1f1f1f #282828*/
13 | /* Linear Blue #191a23 */
--------------------------------------------------------------------------------
/user.js:
--------------------------------------------------------------------------------
1 | // Edge-Frfox - user.js
2 | // https://github.com/bmFtZQ/edge-frfox
3 | // This file contains the settings required for the theme to function correctly.
4 |
5 | // Enables the userChrome.css and userContent.css files.
6 | user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
7 | // Allows the theme's SVG icons to be coloured properly.
8 | user_pref("svg.context-properties.content.enabled", true);
9 | // Allows colours used in the theme to be mixed with others.
10 | user_pref("layout.css.color-mix.enabled", true);
11 | // Allows theme to use different colours for light/dark mode.
12 | user_pref("layout.css.light-dark.enabled", true);
13 | // Enables the CSS :has() selector, required for hide tabs toolbar tweak.
14 | user_pref("layout.css.has-selector.enabled", true);
15 |
--------------------------------------------------------------------------------