├── .gitignore
├── README.md
├── TabCenterReborn.css
└── chrome
├── .DS_Store
├── _config.css
├── components
├── _reassign.css
├── bookmarks-bar.css
├── extensions.css
├── findbar.css
├── nav-bar.css
├── sidebar.css
├── simpleMenuWizard
│ ├── _index.css
│ ├── blank-context.css
│ ├── frame-context.css
│ ├── image-context.css
│ ├── input-context.css
│ ├── link-context.css
│ ├── main-hamburger.css
│ ├── main-menubar.css
│ ├── media-context.css
│ ├── newtab-containers.css
│ ├── opt_noSendToDevice.css
│ ├── select-context.css
│ ├── sidebar-context.css
│ ├── sidebar-header.css
│ ├── source-context.css
│ ├── tab-context.css
│ ├── toolbar-context.css
│ └── urlbar-context.css
├── tabs.css
└── titlebar.css
├── img
├── back.svg
├── bookmarks.svg
├── downloads.svg
├── forward.svg
├── history.svg
├── menu.svg
├── overflow.svg
└── reload.svg
├── js
├── appMenuAboutConfigButton.uc.js
├── appMenuMods.uc.js
├── clearDownloadsButton.uc.js
├── floatingSidebarResizer.uc.js
└── hideTrackingProtectionIconOnCustomNewTabPage.uc.js
├── palette
├── catppuccin-frappe.css
├── catppuccin-latte.css
├── catppuccin-macchiato.css
├── catppuccin-mocha.css
└── catppuccin.css
├── resources
├── .DS_Store
├── controls
│ ├── case-sensitive.svg
│ ├── close.svg
│ ├── entire-word.svg
│ ├── menu-arrow-left-tiny.svg
│ └── menu-arrow-tiny.svg
├── extensions
│ ├── 3rdpartycookies-disabled.svg
│ ├── 3rdpartycookies.svg
│ ├── bitwarden.svg
│ ├── bypass-paywalls.svg
│ ├── case-sensitive.svg
│ ├── command-frames.svg
│ ├── container-base.svg
│ ├── container-go.svg
│ ├── container-plus.svg
│ ├── darkmode.svg
│ ├── dislike.svg
│ ├── fingerprint.svg
│ ├── github.svg
│ ├── hide-password.svg
│ ├── hydrus.svg
│ ├── link.svg
│ ├── pushbullet-solid.svg
│ ├── rainmeter.svg
│ ├── react.svg
│ ├── show-password.svg
│ ├── sidebery.svg
│ ├── sponsorblock.svg
│ ├── stylus.svg
│ ├── svg-gobbler.svg
│ ├── sync.svg
│ ├── tool-inspector.svg
│ ├── tool-styleeditor.svg
│ ├── tool-webconsole.svg
│ ├── translate-small.svg
│ ├── translate.svg
│ ├── tree-style-tabs-32.svg
│ ├── tree-style-tabs.svg
│ └── yomichan.svg
├── material
│ ├── folder-add.svg
│ ├── folder-open.svg
│ ├── folder-save.svg
│ ├── folder-snippets.svg
│ ├── folder-source.svg
│ ├── folder-special.svg
│ ├── folder-upload.svg
│ ├── folder-user-round.svg
│ ├── folder-user.svg
│ ├── folder.svg
│ └── tag.svg
├── nav-bar
│ ├── back.svg
│ └── forward.svg
├── userChrome.ag.css
├── userChrome.au.css
└── window
│ ├── close-hover.svg
│ ├── close.svg
│ ├── inactive.svg
│ ├── maximize-hover.svg
│ ├── maximize-restore.svg
│ ├── maximize.svg
│ ├── minimize-hover.svg
│ └── minimize.svg
├── userChrome.css
├── userContent.css
└── utils
├── boot.jsm
└── chrome.manifest
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Firefox vertical tabs setup
2 |
3 | 
4 |
5 |
6 |
7 | ## You will need
8 |
9 | [Custom Firefox stylesheet](https://www.reddit.com/r/firefox/wiki/userchrome/) (userChrome.css)
10 |
11 | [Tab Center Reborn Extension](https://addons.mozilla.org/en-US/firefox/addon/tabcenter-reborn/)
12 |
13 | ### Files
14 | `1. chrome` folder
15 |
16 | `2. TabCenterReborn.css`
17 |
18 | ---
19 | # Installation
20 |
21 | !!! **Warning: Some colors are hard coded, also changes back and forward buttons and the like. Also like half the css is unused so fix it if you want** !!!
22 |
23 | 1. Enable the custom userChrome.css
24 | 1. Drag the `chrome` unzipped directory in your profiles
25 |
26 |
27 |
28 | 2. Enable the custom stylesheet for [Tab Center Reborn](https://addons.mozilla.org/en-CA/firefox/addon/tabcenter-reborn/) extension
29 | 1. Go to the addons settings
30 | 2. Click on prefrences for Tab Center Reborn
31 | 3. Click Prefrences
32 | 4. Scroll down to advanced and enable custom stylesheet
33 | 5. Paste in the contents of [TabCenterReborn.css](https://github.com/Tnixc/firefox-config/blob/main/TabCenterReborn.css)
34 |
35 | 3. Restart Firefox
36 | 4. Finally, I recommend installing [firefox color](https://color.firefox.com/) to match the theme.
37 |
38 | > [!TIP]
39 | > You can scroll through the tabs by holding ctrl and scrolling. I recommend you explore the settings of Tab Center Reborn
40 | >
41 |
--------------------------------------------------------------------------------
/TabCenterReborn.css:
--------------------------------------------------------------------------------
1 | /* Overwrite some colours */
2 | :root {
3 | --tab-separator: transparent;
4 | --tab-selected-line: transparent;
5 | --tablist-separator: #cccccc;
6 | }
7 |
8 | @media (prefers-color-scheme: dark) {
9 | :root {
10 | --tab-separator: transparent;
11 | --tab-active-background: rgb(66, 65, 77);
12 | --tab-active-text: rgb(251, 251, 254);
13 | --tab-text: #fbfbfe;
14 | --toolbar-background: rgb(43, 42, 51);
15 | --toolbar-text: rgb(251, 251, 254);
16 | --input-background: rgb(28, 27, 34);
17 | --input-border: transparent;
18 | --input-background-focus: rgb(66, 65, 77);
19 | --input-selected-text: rgb(251, 251, 254);
20 | --input-text: rgb(251, 251, 254);
21 | --input-text-focus: rgb(251, 251, 254);
22 | --identity-color-toolbar: rgb(251, 251, 254);
23 | --tablist-separator: #00000000;
24 | }
25 | }
26 |
27 | /* Move topmenu to bottom */
28 | #topmenu {
29 | order: 2;
30 | background: transparent;
31 | border: none;
32 | margin: 3px;
33 | }
34 | #newtab {
35 | flex-grow: 1;
36 | }
37 | #newtab-icon {
38 | transform: translateX(3px);
39 | }
40 | #settings,
41 | #filterbox-icon,
42 | #filterbox-input {
43 | display: none;
44 | }
45 | #tablist-wrapper {
46 | padding-top: 6px;
47 | height: auto;
48 | margin: 0 6px;
49 | }
50 | .tab {
51 | padding: 0px !important;
52 | margin: 0px !important;
53 | gap: 0px !important;
54 | border-radius: 8px;
55 | }
56 | .active {
57 | box-shadow: inset 0 0 0 2px #b7bdf8 !important;
58 | }
59 | .tab-meta-image {
60 | transform: translateX(1px);
61 | }
62 | #pinnedtablist:not(.compact) .tab,
63 | #tablist .tab {
64 | border-color: transparent;
65 | }
66 | #tablist-wrapper {
67 | margin-left: 0px;
68 | padding-left: 6px;
69 | }
70 | #tablist {
71 | gap: 2px;
72 | margin-left: -6px;
73 | padding-left: 6px;
74 | }
75 | .tab {
76 | overflow: visible;
77 | }
78 | #tablist .tab[data-identity-color] .tab-context {
79 | box-shadow: none !important;
80 | }
81 | #tablist .tab.active[data-identity-color] .tab-context::before {
82 | top: 1px;
83 | bottom: 1px;
84 | }
85 | #bottomshadow,
86 | #topshadow {
87 | box-shadow: 0 0 10px 0 #252739;
88 | }
89 | #newtab:hover {
90 | background: #252739;
91 | }
92 | .tab-close {
93 | height: 28px !important;
94 | border-radius: 4px;
95 | transform: translateX(-4px);
96 | }
97 | .tab:not(.active):hover {
98 | background: #313243 !important;
99 | }
100 | .tab-pin {
101 | filter: none !important;
102 | position: absolute;
103 | right: 4px;
104 | opacity: 0;
105 | transition: 100ms;
106 | background: #1D1C2D;
107 | z-index: 999;
108 | padding: 5px;
109 | transform: scaleX(-1);
110 | }
111 |
112 | body:hover .tab-pin {
113 | opacity: 1;
114 | }
115 |
116 | #pinnedtablist {
117 | padding-bottom: 6px;
118 | position: relative;
119 | }
120 | #pinnedtablist::after {
121 | position: absolute;
122 | content: "";
123 | left: 0;
124 | width: 100%;
125 | bottom: 1px;
126 | height: 2px;
127 | background-color: #252739;
128 | border-radius: 999px;
129 | }
130 | /* Purple */
131 | div[data-identity-color="purple"] {
132 | position: relative;
133 | }
134 |
135 | div[data-identity-color="purple"]::after {
136 | content: '';
137 | position: absolute;
138 | inset: 0;
139 | border-radius: 6px;
140 | z-index: -1;
141 | opacity: 0.1;
142 | background-color: var(--uc-identity-purple)!important;
143 | }
144 | div[data-identity-color="blue"] {
145 | position: relative;
146 | }
147 |
148 | div[data-identity-color="blue"]::after {
149 | content: '';
150 | position: absolute;
151 | inset: 0;
152 | border-radius: 6px;
153 | z-index: -1;
154 | opacity: 0.1;
155 | background-color: var(--uc-identity-blue)!important;
156 | }
157 |
158 | div[data-identity-color="blue"]::before {
159 | content: '';
160 | position: absolute;
161 | left: 0;
162 | top: 3px;
163 | bottom: 3px;
164 | width: 3px;
165 | border-radius: 4px;
166 | z-index: 1;
167 | background-color: var(--uc-identity-blue)!important;
168 | transition: 0.125s ease-in-out;
169 | }
170 |
171 | div[data-identity-color="blue"].active::before {
172 | content: '';
173 | position: absolute;
174 | left: -4px;
175 | top: 3px;
176 | bottom: 3px;
177 | width: 3px;
178 | border-radius: 4px;
179 | z-index: 1;
180 | background-color: var(--uc-identity-blue)!important;
181 | }
182 |
183 | div[data-identity-color="purple"]::before {
184 | content: '';
185 | position: absolute;
186 | left: 0;
187 | top: 3px;
188 | bottom: 3px;
189 | width: 3px;
190 | border-radius: 4px;
191 | z-index: 1;
192 | background-color: var(--uc-identity-purple)!important;
193 | transition: 0.125s ease-in-out;
194 | }
195 |
196 | div[data-identity-color="purple"].active::before {
197 | content: '';
198 | position: absolute;
199 | left: -4px;
200 | top: 3px;
201 | bottom: 3px;
202 | width: 3px;
203 | border-radius: 4px;
204 | z-index: 1;
205 | background-color: var(--uc-identity-purple)!important;
206 | }
207 |
208 | /* Pink */
209 | div[data-identity-color="pink"] {
210 | position: relative;
211 | }
212 |
213 | div[data-identity-color="pink"]::after {
214 | content: '';
215 | position: absolute;
216 | inset: 0;
217 | border-radius: 6px;
218 | z-index: -1;
219 | opacity: 0.1;
220 | background-color: var(--uc-identity-pink)!important;
221 | }
222 |
223 | div[data-identity-color="pink"]::before {
224 | content: '';
225 | position: absolute;
226 | left: 0;
227 | top: 3px;
228 | bottom: 3px;
229 | width: 3px;
230 | border-radius: 4px;
231 | z-index: 1;
232 | background-color: var(--uc-identity-pink)!important;
233 | transition: 0.125s ease-in-out;
234 | }
235 |
236 | div[data-identity-color="pink"].active::before {
237 | content: '';
238 | position: absolute;
239 | left: -4px;
240 | top: 3px;
241 | bottom: 3px;
242 | width: 3px;
243 | border-radius: 4px;
244 | z-index: 1;
245 | background-color: var(--uc-identity-pink)!important;
246 | }
247 |
248 | /* Red */
249 | div[data-identity-color="red"] {
250 | position: relative;
251 | }
252 |
253 | div[data-identity-color="red"]::after {
254 | content: '';
255 | position: absolute;
256 | inset: 0;
257 | border-radius: 6px;
258 | z-index: -1;
259 | opacity: 0.1;
260 | background-color: var(--uc-identity-red)!important;
261 | }
262 |
263 | div[data-identity-color="red"]::before {
264 | content: '';
265 | position: absolute;
266 | left: 0;
267 | top: 3px;
268 | bottom: 3px;
269 | width: 3px;
270 | border-radius: 4px;
271 | z-index: 1;
272 | background-color: var(--uc-identity-red)!important;
273 | transition: 0.125s ease-in-out;
274 | }
275 |
276 | div[data-identity-color="red"].active::before {
277 | content: '';
278 | position: absolute;
279 | left: -4px;
280 | top: 3px;
281 | bottom: 3px;
282 | width: 3px;
283 | border-radius: 4px;
284 | z-index: 1;
285 | background-color: var(--uc-identity-red)!important;
286 | }
287 |
288 | /* Orange */
289 | div[data-identity-color="orange"] {
290 | position: relative;
291 | }
292 |
293 | div[data-identity-color="orange"]::after {
294 | content: '';
295 | position: absolute;
296 | inset: 0;
297 | border-radius: 6px;
298 | z-index: -1;
299 | opacity: 0.1;
300 | background-color: var(--uc-identity-orange)!important;
301 | }
302 |
303 | div[data-identity-color="orange"]::before {
304 | content: '';
305 | position: absolute;
306 | left: 0;
307 | top: 3px;
308 | bottom: 3px;
309 | width: 3px;
310 | border-radius: 4px;
311 | z-index: 1;
312 | background-color: var(--uc-identity-orange)!important;
313 | transition: 0.125s ease-in-out;
314 | }
315 |
316 | div[data-identity-color="orange"].active::before {
317 | content: '';
318 | position: absolute;
319 | left: -4px;
320 | top: 3px;
321 | bottom: 3px;
322 | width: 3px;
323 | border-radius: 4px;
324 | z-index: 1;
325 | background-color: var(--uc-identity-orange)!important;
326 | }
327 |
328 | /* Yellow */
329 | div[data-identity-color="yellow"] {
330 | position: relative;
331 | }
332 |
333 | div[data-identity-color="yellow"]::after {
334 | content: '';
335 | position: absolute;
336 | inset: 0;
337 | border-radius: 6px;
338 | z-index: -1;
339 | opacity: 0.1;
340 | background-color: var(--uc-identity-yellow)!important;
341 | }
342 |
343 | div[data-identity-color="yellow"]::before {
344 | content: '';
345 | position: absolute;
346 | left: 0;
347 | top: 3px;
348 | bottom: 3px;
349 | width: 3px;
350 | border-radius: 4px;
351 | z-index: 1;
352 | background-color: var(--uc-identity-yellow)!important;
353 | transition: 0.125s ease-in-out;
354 | }
355 |
356 | div[data-identity-color="yellow"].active::before {
357 | content: '';
358 | position: absolute;
359 | left: -4px;
360 | top: 3px;
361 | bottom: 3px;
362 | width: 3px;
363 | border-radius: 4px;
364 | z-index: 1;
365 | background-color: var(--uc-identity-yellow)!important;
366 | }
367 |
368 | /* Green */
369 | div[data-identity-color="green"] {
370 | position: relative;
371 | }
372 |
373 | div[data-identity-color="green"]::after {
374 | content: '';
375 | position: absolute;
376 | inset: 0;
377 | border-radius: 6px;
378 | z-index: -1;
379 | opacity: 0.1;
380 | background-color: var(--uc-identity-green)!important;
381 | }
382 |
383 | div[data-identity-color="green"]::before {
384 | content: '';
385 | position: absolute;
386 | left: 0;
387 | top: 3px;
388 | bottom: 3px;
389 | width: 3px;
390 | border-radius: 4px;
391 | z-index: 1;
392 | background-color: var(--uc-identity-green)!important;
393 | transition: 0.125s ease-in-out;
394 | }
395 |
396 | div[data-identity-color="green"].active::before {
397 | content: '';
398 | position: absolute;
399 | left: -4px;
400 | top: 3px;
401 | bottom: 3px;
402 | width: 3px;
403 | border-radius: 4px;
404 | z-index: 1;
405 | background-color: var(--uc-identity-green)!important;
406 | }
407 |
408 | /* Turquoise */
409 | div[data-identity-color="turquoise"] {
410 | position: relative;
411 | }
412 |
413 | div[data-identity-color="turquoise"]::after {
414 | content: '';
415 | position: absolute;
416 | inset: 0;
417 | border-radius: 6px;
418 | z-index: -1;
419 | opacity: 0.1;
420 | background-color: var(--uc-identity-turquoise)!important;
421 | }
422 |
423 | div[data-identity-color="turquoise"]::before {
424 | content: '';
425 | position: absolute;
426 | left: 0;
427 | top: 3px;
428 | bottom: 3px;
429 | width: 3px;
430 | border-radius: 4px;
431 | z-index: 1;
432 | background-color: var(--uc-identity-turquoise)!important;
433 | transition: 0.125s ease-in-out;
434 | }
435 |
436 | div[data-identity-color="turquoise"].active::before {
437 | content: '';
438 | position: absolute;
439 | left: -4px;
440 | top: 3px;
441 | bottom: 3px;
442 | width: 3px;
443 | border-radius: 4px;
444 | z-index: 1;
445 | background-color: var(--uc-identity-turquoise)!important;
446 | }
447 |
--------------------------------------------------------------------------------
/chrome/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tnixc/firefox-config/70874d5eab359439576eb6b830012a8036895aa8/chrome/.DS_Store
--------------------------------------------------------------------------------
/chrome/_config.css:
--------------------------------------------------------------------------------
1 | @import url("./palette/catppuccin-frappe.css");
2 |
3 | :root {
4 | --uc-tab-min-height: 32px;
5 | --uc-tab-inactive-max-width: calc(225px / 2);
6 | --uc-tab-border-radius: 8px;
7 | --uc-tab-margin: 4px;
8 | --uc-tab-outline-width: 2px;
9 | --uc-tab-inactive-opacity: 0.55;
10 |
11 | --uc-urlbar-box-text-color: var(--toolbarbutton-icon-fill);
12 | --uc-urlbar-box-hover-bgcolor: var(--lwt-toolbarbutton-icon-fill-attention);
13 | --uc-urlbar-box-active-bgcolor: color-mix(
14 | in hsl,
15 | var(--toolbarbutton-icon-fill) 90%,
16 | var(--tabpanel-background-color)
17 | );
18 | --uc-urlbar-box-hover-text-color: var(--tabpanel-background-color);
19 |
20 | --uc-focus-outline-color: var(--toolbar-field-focus-border-color);
21 |
22 | --uc-toolbarbutton-badge-bgcolor: var(
23 | --lwt-toolbarbutton-icon-fill-attention
24 | );
25 | --uc-toolbarbutton-badge-color: var(--tabpanel-background-color);
26 | --uc-toolbarbutton-border-radius: 8px;
27 |
28 | /* --uc-menu-background: var(--arrowpanel-background);
29 | --uc-menu-color: var(--arrowpanel-color);
30 | --uc-menu-border-color: var(--arrowpanel-border-color);
31 | --uc-menuitem-hover-background-color: color-mix(
32 | in srgb,
33 | currentColor 11%,
34 | transparent
35 | );
36 | --uc-menu-disabled-color: var(--panel-disabled-color);
37 | --uc-menuitem-disabled-hover-background-color: var(
38 | --uc-menuitem-hover-background-color
39 | ); */
40 |
41 | --uc-bookmark-height: 20px; /* Might need to adjust if the toolbar has other buttons */
42 | --uc-bookmark-padding: 4px; /* Vertical padding to be applied to bookmarks */
43 | --uc-bookmark-autohide-delay: 300ms;
44 |
45 | /* 0deg = "show" ; 90deg = "hide" ; Set the following to control when bookmarks are shown */
46 | --uc-bookmark-autohide-focus-rotation: 90deg; /* urlbar is focused */
47 | --uc-bookmark-autohide-hover-rotation: 0deg; /* cursor is over the toolbar area */
48 |
49 | --uc-findbar-min-width: 225px;
50 | --uc-findbar-max-width: 400px;
51 | --uc-findbar-height: 22px;
52 | --uc-findbar-textbox-bg-transition-duration: 200ms;
53 |
54 | /* identity colors */
55 | --uc-identity-toolbar: var(--ctp-text);
56 | --uc-identity-blue: var(--ctp-sapphire);
57 | --uc-identity-turquoise: var(--ctp-teal);
58 | --uc-identity-green: var(--ctp-green);
59 | --uc-identity-yellow: var(--ctp-yellow);
60 | --uc-identity-orange: var(--ctp-peach);
61 | --uc-identity-red: var(--ctp-red);
62 | --uc-identity-pink: var(--ctp-pink);
63 | --uc-identity-purple: var(--ctp-mauve);
64 | }
65 |
--------------------------------------------------------------------------------
/chrome/components/_reassign.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --tab-min-height: var(--uc-tab-min-height, 32px) !important;
3 | --tab-border-radius: var(--uc-tab-border-radius, 8px) !important;
4 |
5 | --toolbarbutton-border-radius: var(
6 | --uc-toolbarbutton-border-radius,
7 | 8px
8 | ) !important;
9 |
10 | --urlbar-box-hover-bgcolor: var(
11 | --uc-urlbar-box-hover-bgcolor,
12 | var(--button-hover-bgcolor)
13 | ) !important;
14 | --urlbar-box-active-bgcolor: var(
15 | --uc-urlbar-box-active-bgcolor,
16 | var(--button-active-bgcolor)
17 | ) !important;
18 | --urlbar-box-hover-text-color: var(
19 | --uc-urlbar-box-hover-text-color,
20 | var(--urlbar-box-text-color)
21 | ) !important;
22 | /* --urlbar-box-focus-bgcolor: var(--uc-urlbar-box-focus-bgcolor, var(--button-bgcolor)) !important; */
23 |
24 | --focus-outline-color: var(--uc-focus-outline-color) !important;
25 | }
26 |
27 | /***** usercontext.css *****/
28 | .identity-color-toolbar {
29 | --identity-tab-color: var(
30 | --uc-identity-toolbar,
31 | var(--toolbar-field-color)
32 | ) !important;
33 | --identity-icon-color: var(
34 | --uc-identity-toolbar,
35 | var(--toolbar-field-color)
36 | ) !important;
37 | }
38 |
39 | .identity-color-blue {
40 | --identity-tab-color: var(--uc-identity-blue, #37adff) !important;
41 | --identity-icon-color: var(--uc-identity-blue, #37adff) !important;
42 | }
43 |
44 | .identity-color-turquoise {
45 | --identity-tab-color: var(--uc-identity-turquoise, #00c79a) !important;
46 | --identity-icon-color: var(--uc-identity-turquoise, #00c79a) !important;
47 | }
48 |
49 | .identity-color-green {
50 | --identity-tab-color: var(--uc-identity-green, #51cd00) !important;
51 | --identity-icon-color: var(--uc-identity-green, #51cd00) !important;
52 | }
53 |
54 | .identity-color-yellow {
55 | --identity-tab-color: var(--uc-identity-yellow, #ffcb00) !important;
56 | --identity-icon-color: var(--uc-identity-yellow, #ffcb00) !important;
57 | }
58 |
59 | .identity-color-orange {
60 | --identity-tab-color: var(--uc-identity-orange, #ff9f00) !important;
61 | --identity-icon-color: var(--uc-identity-orange, #ff9f00) !important;
62 | }
63 |
64 | .identity-color-red {
65 | --identity-tab-color: var(--uc-identity-red, #ff613d) !important;
66 | --identity-icon-color: var(--uc-identity-red, #ff613d) !important;
67 | }
68 |
69 | .identity-color-pink {
70 | --identity-tab-color: var(--uc-identity-pink, #ff4bda) !important;
71 | --identity-icon-color: var(--uc-identity-pink, #ff4bda) !important;
72 | }
73 |
74 | .identity-color-purple {
75 | --identity-tab-color: var(--uc-identity-purple, #af51f5) !important;
76 | --identity-icon-color: var(--uc-identity-purple, #af51f5) !important;
77 | }
78 |
79 | /***** popup.css *****/
80 | /* panel,
81 | #PersonalToolbar menupopup,
82 | #mainPopupSet menupopup {
83 | --menu-color: var(--uc-menu-color) !important;
84 | --menu-background-color: var(--uc-menu-background) !important;
85 | --menu-border-color: var(--uc-menu-border-color) !important;
86 | --menuitem-hover-background-color: var(
87 | --uc-menuitem-hover-background-color
88 | ) !important;
89 | --menu-disabled-color: var(--uc-menu-disabled-color) !important;
90 | --menuitem-disabled-hover-background-color: var(
91 | --uc-menuitem-disabled-hover-background-color
92 | ) !important;
93 | } */
94 |
--------------------------------------------------------------------------------
/chrome/components/bookmarks-bar.css:
--------------------------------------------------------------------------------
1 | /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_bookmarks_toolbar.css made available under Mozilla Public License v. 2.0
2 | See the above repository for updates as well as full license text. */
3 |
4 | :root[uidensity="compact"] #PersonalToolbar {
5 | --uc-bookmark-padding: 1px;
6 | }
7 |
8 | :root[uidensity="touch"] #PersonalToolbar {
9 | --uc-bookmark-padding: 7px;
10 | }
11 |
12 | #PersonalToolbar:not([customizing]) {
13 | position: relative;
14 | margin-bottom: calc(
15 | 0px - var(--uc-bookmark-height, 20px) - 2 * var(--uc-bookmark-padding, 20px)
16 | );
17 | transform: rotateX(90deg);
18 | transform-origin: top;
19 | transition: transform 135ms linear var(--uc-bookmark-autohide-delay, 600ms) !important;
20 | z-index: 1;
21 | backdrop-filter: blur(20px) !important;
22 | /* The following properties should allow themes with trasparent toolbars to work */
23 | background-repeat: no-repeat, no-repeat, var(--lwt-background-tiling);
24 |
25 | --uc-bg-y: calc(
26 | -2 * (
27 | var(--tab-block-margin) + var(--toolbarbutton-inner-padding) +
28 | var(--toolbarbutton-outer-padding)
29 | ) - var(--tab-min-height) - 16px - var(--bookmark-block-padding)
30 | );
31 | background-position: top left, top left,
32 | var(--lwt-background-alignment, top left);
33 | background-position-y: top, top, var(--uc-bg-y), var(--uc-bg-y),
34 | var(--uc-bg-y);
35 | background-image: var(--toolbar-bgimage),
36 | linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)),
37 | var(--lwt-header-image, var(--lwt-additional-images)) !important;
38 | }
39 |
40 | #PlacesToolbarItems > .bookmark-item,
41 | #OtherBookmarks,
42 | #PersonalToolbar > #import-button {
43 | padding-block: var(--uc-bookmark-padding) !important;
44 | }
45 |
46 | #nav-bar:focus-within + #PersonalToolbar {
47 | transition-delay: 100ms !important;
48 | transform: rotateX(var(--uc-bookmark-autohide-focus-rotation, 0));
49 | }
50 |
51 | #navigator-toolbox:hover > #PersonalToolbar {
52 | transition-delay: 100ms !important;
53 | transform: rotateX(var(--uc-bookmark-autohide-hover-rotation, 0));
54 | }
55 |
56 | #navigator-toolbox:hover > #nav-bar:focus-within + #PersonalToolbar {
57 | transform: rotateX(0);
58 | }
59 |
--------------------------------------------------------------------------------
/chrome/components/extensions.css:
--------------------------------------------------------------------------------
1 | .toolbarbutton-badge {
2 | background-color: var(--uc-toolbarbutton-badge-bgcolor) !important;
3 | color: var(--uc-toolbarbutton-badge-color) !important;
4 | /* bc hydrus' "Post" label is too long */
5 | /* max-width: 27px !important; */
6 | }
7 |
8 | /***** ICONS *****/
9 |
10 | /* tree-style-tabs */
11 | .webextension-browser-action[data-extensionid="treestyletab@piro.sakura.ne.jp"i]
12 | .toolbarbutton-icon,
13 | #sidebarMenu-popup
14 | #button_treestyletab_piro_sakura_ne_jp-sidebar-action:not([checked="true"]) {
15 | list-style-image: url("../resources/extensions/tree-style-tabs-32.svg") !important;
16 | }
17 |
18 | .eom-addon-button[data-extensionid="treestyletab@piro.sakura.ne.jp"i]
19 | .toolbarbutton-icon,
20 | menupopup#viewSidebarMenu
21 | menuitem.menuitem-iconic.webextension-menuitem#menu_treestyletab_piro_sakura_ne_jp-sidebar-action[style]:is(
22 | [type="checkbox"],
23 | [type="radio"]
24 | ):not([checked="true"]) {
25 | list-style-image: url("../resources/extensions/tree-style-tabs.svg") !important;
26 | }
27 |
28 | /* SVG gobbler */
29 | :is(
30 | .webextension-browser-action,
31 | .eom-addon-button
32 | )[data-extensionid="{7962ff4a-5985-4cf2-9777-4bb642ad05b8}"i]
33 | .toolbarbutton-icon {
34 | list-style-image: url("../resources/extensions/svg-gobbler.svg") !important;
35 | }
36 |
37 | /* return youtube dislikes */
38 | :is(
39 | .webextension-browser-action,
40 | .eom-addon-button
41 | )[data-extensionid="{762f9885-5a13-4abd-9c77-433dcd38b8fd}"]
42 | .toolbarbutton-icon {
43 | list-style-image: url("../resources/extensions/dislike.svg") !important;
44 | transform: scaleX(-1);
45 | }
46 |
47 | /* cookie remover */
48 | :is(
49 | .webextension-browser-action,
50 | .eom-addon-button
51 | )[data-extensionid="{3507f56d-2ef5-45c1-b6d7-5297a0ba7642}"i]
52 | .toolbarbutton-icon {
53 | list-style-image: url("../resources/extensions/3rdpartycookies-disabled.svg");
54 | }
55 |
56 | /* i don't care about cookies */
57 | :is(
58 | .webextension-browser-action,
59 | .eom-addon-button
60 | )[data-extensionid="jid1-KKzOGWgsW3Ao4Q@jetpack"i]
61 | .toolbarbutton-icon,
62 | :is(
63 | .webextension-browser-action,
64 | .eom-addon-button
65 | )[data-extensionid="idcac-pub@guus.ninja"i]
66 | .toolbarbutton-icon {
67 | list-style-image: url("../resources/extensions/3rdpartycookies.svg");
68 | }
69 |
70 | /* dark reader */
71 | :is(
72 | .webextension-browser-action,
73 | .eom-addon-button
74 | )[data-extensionid="addon@darkreader.org"i]
75 | .toolbarbutton-icon {
76 | list-style-image: url("../resources/extensions/darkmode.svg");
77 | }
78 |
79 | /* dark reader's popup, corresponds to colors set in userContent.css */
80 | #customizationui-widget-panel[viewId="PanelUI-webext-addon_darkreader_org-browser-action-view"] {
81 | --arrowpanel-background: var(--tooltip-bgcolor) !important;
82 | --arrowpanel-border-color: var(--uc-menu-border-color) !important;
83 | }
84 |
85 | /* uBlock origin */
86 | :is(
87 | .webextension-browser-action,
88 | .eom-addon-button
89 | )[data-extensionid="uBlock0@raymondhill.net"i]
90 | .toolbarbutton-icon {
91 | list-style-image: url("../resources/extensions/show-password.svg");
92 | }
93 |
94 | /* uBlock origin disabled on this site */
95 | :is(
96 | .webextension-browser-action,
97 | .eom-addon-button
98 | )[data-extensionid="uBlock0@raymondhill.net"i][style*="icon_16-off.png"]
99 | .toolbarbutton-icon {
100 | list-style-image: url("../resources/extensions/hide-password.svg");
101 | }
102 |
103 | /* violentmonkey/tampermonkey, for injecting scripts into content windows */
104 | :is(.webextension-browser-action, .eom-addon-button)[label^="Violentmonkey"]
105 | .toolbarbutton-icon,
106 | :is(
107 | .webextension-browser-action,
108 | .eom-addon-button
109 | )[data-extensionid="{aecec67f-0d10-4fa7-b7c7-609a2db280cf}"i]
110 | .toolbarbutton-icon,
111 | :is(.webextension-browser-action, .eom-addon-button)[label^="Tampermonkey"]
112 | .toolbarbutton-icon,
113 | :is(
114 | .webextension-browser-action,
115 | .eom-addon-button
116 | )[data-extensionid="{db4c0b1f-a516-4c61-85ba-af46ccfc6d13}"i]
117 | .toolbarbutton-icon {
118 | list-style-image: url("../resources/extensions/tool-webconsole.svg");
119 | }
120 |
121 | .tabbrowser-tab[label$="Violentmonkey"] .tab-icon-image,
122 | .tabbrowser-tab[label$="Tampermonkey"] .tab-icon-image {
123 | content: url("../resources/extensions/tool-webconsole.svg") !important;
124 | fill: currentColor !important;
125 | }
126 |
127 | /* stylus, for injecting inline CSS into content windows. more useful than
128 | userContent.css when dealing with very complex websites that need
129 | elaborate/compiled stylesheets */
130 | :is(.webextension-browser-action, .eom-addon-button)[label="Stylus"]
131 | .toolbarbutton-icon,
132 | :is(
133 | .webextension-browser-action,
134 | .eom-addon-button
135 | )[data-extensionid="{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}"i]
136 | .toolbarbutton-icon {
137 | list-style-image: url("../resources/extensions/stylus.svg");
138 | }
139 |
140 | /* sponsorblock */
141 | :is(
142 | .webextension-browser-action,
143 | .eom-addon-button
144 | )[data-extensionid="sponsorBlocker@ajay.app"]
145 | .toolbarbutton-icon {
146 | list-style-image: url("../resources/extensions/sponsorblock.svg");
147 | }
148 |
149 | /* bypass paywalls */
150 | :is(
151 | .webextension-browser-action,
152 | .eom-addon-button
153 | )[data-extensionid="bypasspaywalls@bypasspaywalls"]
154 | .toolbarbutton-icon {
155 | list-style-image: url("../resources/extensions/bypass-paywalls.svg");
156 | }
157 |
158 | /* react devtools */
159 | :is(
160 | .webextension-browser-action,
161 | .eom-addon-button
162 | )[data-extensionid="@react-devtools"]
163 | .toolbarbutton-icon {
164 | list-style-image: url("../resources/extensions/react.svg");
165 | }
166 |
167 | /* invert github's black icon */
168 | :is(.menu-iconic-icon, .toolbarbutton-icon, .urlbarView-favicon):is([src^="page-icon:https://github.com"], [src^="page-icon:http://github.com"])
169 | {
170 | background-image: url("../resources/extensions/github.svg") !important;
171 | background-size: 16px !important;
172 | background-repeat: no-repeat !important;
173 | background-position: center !important;
174 | padding-inline: 16px 0 !important;
175 | box-sizing: border-box !important;
176 | }
177 |
178 | /* multi-container tabs */
179 | :is(
180 | .webextension-browser-action,
181 | .eom-addon-button
182 | )[data-extensionid="@testpilot-containers"i]
183 | .toolbarbutton-icon {
184 | list-style-image: url("../resources/extensions/container-base.svg");
185 | }
186 |
187 | :is(
188 | .pageAction-panel-button,
189 | .urlbar-page-action
190 | )[actionid="_testpilot-containers"] {
191 | --pageAction-image-16px: url("../resources/extensions/container-go.svg") !important;
192 | --pageAction-image-32px: url("../resources/extensions/container-go.svg") !important;
193 | list-style-image: url("../resources/extensions/container-go.svg") !important;
194 | }
195 |
196 | /* canvasblocker */
197 | :is(.pageAction-panel-button, .urlbar-page-action)[actionid^="canvasblocker_"],
198 | :is(
199 | .webextension-browser-action,
200 | .eom-addon-button
201 | )[data-extensionid="CanvasBlocker@kkapsner.de"] {
202 | --pageAction-image-16px: url("../resources/extensions/fingerprint.svg") !important;
203 | --pageAction-image-32px: url("../resources/extensions/fingerprint.svg") !important;
204 | list-style-image: url("../resources/extensions/fingerprint.svg") !important;
205 | opacity: 0.9;
206 | }
207 |
208 | /* hydrus */
209 | :is(
210 | .webextension-browser-action,
211 | .eom-addon-button
212 | )[data-extensionid="hydruscompanion@hydruscompanion.hydruscompanion"] {
213 | --pageAction-image-16px: url("../resources/extensions/hydrus.svg") !important;
214 | --pageAction-image-32px: url("../resources/extensions/hydrus.svg") !important;
215 | list-style-image: url("../resources/extensions/hydrus.svg") !important;
216 | transform: scale(1.08);
217 | }
218 |
219 | :is(
220 | .webextension-browser-action,
221 | .eom-addon-button
222 | )[data-extensionid="hydruscompanion@hydruscompanion.hydruscompanion"][badge="Post"]
223 | .toolbarbutton-badge {
224 | font-size: 8px !important;
225 | }
226 |
227 | /* yomichan */
228 | :is(
229 | .webextension-browser-action,
230 | .eom-addon-button
231 | )[data-extensionid="alex@foosoft.net"] {
232 | --pageAction-image-16px: url("../resources/extensions/yomichan.svg") !important;
233 | --pageAction-image-32px: url("../resources/extensions/yomichan.svg") !important;
234 | list-style-image: url("../resources/extensions/yomichan.svg") !important;
235 | /* transform: scale(0.99); */
236 | }
237 |
--------------------------------------------------------------------------------
/chrome/components/findbar.css:
--------------------------------------------------------------------------------
1 | @keyframes findbar-down {
2 | 0% {
3 | opacity: 0;
4 | transform: translateY(calc(0px - var(--uc-findbar-height) - 16px));
5 | }
6 | 66.6% {
7 | opacity: 0.666;
8 | transform: translateY(0);
9 | }
10 | 100% {
11 | opacity: 1;
12 | }
13 | }
14 |
15 | .browserContainer {
16 | position: relative;
17 | }
18 |
19 | .browserContainer > findbar {
20 | -moz-box-ordinal-group: 0;
21 | position: absolute !important;
22 | display: flex !important;
23 | visibility: visible !important;
24 | flex-flow: row nowrap;
25 | align-items: center;
26 | top: 0 !important;
27 | left: 1.5em;
28 | min-height: unset !important;
29 | padding-block: 8px !important;
30 | width: calc(40% - 100px) !important;
31 | min-width: var(--uc-findbar-min-width, 225px) !important;
32 | max-width: var(--uc-findbar-max-width, 400px) !important;
33 | background-color: var(--toolbar-bgcolor) !important;
34 | border: 0px solid transparent !important;
35 | border-bottom-left-radius: 5px !important;
36 | border-bottom-right-radius: 5px !important;
37 | border-top: none !important;
38 | box-shadow: 0px 0px 7px -2px hsla(240, 4%, 0%, 0.6),
39 | 0px 0px 15px 0px hsla(0, 0%, 0%, 0.2) !important;
40 | background-image: none !important;
41 | transition-property: transform, opacity, width, left, right !important;
42 | transition-duration: 0.2s, 0.3s, 0.2s, 0.2s, 0.2s !important;
43 | transition-delay: 0s, 0s, 0s, 0s, 0s !important;
44 | transition-timing-function: ease-in-out, ease-in-out, ease-in-out, ease-in-out,
45 | ease-in-out !important;
46 | z-index: 1 !important;
47 | animation: 0.3s ease-in-out findbar-down;
48 | overflow: hidden !important;
49 | transform-style: preserve-3d !important;
50 | backface-visibility: hidden !important;
51 | }
52 |
53 | @media screen and not (min-width: 500px) {
54 | .browserContainer > findbar {
55 | width: 100% !important;
56 | right: 0 !important;
57 | max-width: unset !important;
58 | left: 0 !important;
59 | right: 0 !important;
60 | border-radius: 0 !important;
61 | }
62 |
63 | #sidebar-box[hidden="true"] ~ #appcontent findbar,
64 | #sidebar-box:not([positionend="true"]) ~ #appcontent findbar {
65 | right: 0 !important;
66 | }
67 | }
68 |
69 | .findbar-container {
70 | -moz-box-orient: horizontal !important;
71 | height: var(--uc-findbar-height, 22px) !important;
72 | min-width: revert !important;
73 | width: 100% !important;
74 | overflow: revert !important;
75 | }
76 |
77 | findbar[hidden] {
78 | transform: translateY(calc(0px - var(--uc-findbar-height, 22px) - 16px));
79 | pointer-events: none;
80 | opacity: 0 !important;
81 | transition-duration: 0.3s, 0.2s, 0.2s, 0.2s, 0.2s !important;
82 | }
83 |
84 | #sidebar-box[hidden="true"] ~ #appcontent findbar,
85 | #sidebar-box:not([positionend="true"]) ~ #appcontent findbar {
86 | left: auto !important;
87 | right: 1.5em !important;
88 | }
89 |
90 | .findbar-closebutton {
91 | padding: 0 !important;
92 | margin-inline: 7px 0 !important;
93 | margin-block: 0 !important;
94 | height: var(--uc-findbar-height, 22px) !important;
95 | width: var(--uc-findbar-height, 22px) !important;
96 | border-radius: var(--toolbarbutton-border-radius) !important;
97 | -moz-box-ordinal-group: 2 !important;
98 | }
99 |
100 | .findbar-closebutton .toolbarbutton-icon {
101 | fill-opacity: 0 !important;
102 | width: 12px !important;
103 | height: 12px !important;
104 | list-style-image: url("../resources/controls/close.svg") !important;
105 | /* stroke: white !important; */
106 | -moz-context-properties: fill, fill-opacity, stroke !important;
107 | }
108 |
109 | .findbar-closebutton:is(:hover, :focus-visible):not([disabled]) {
110 | background-color: var(--toolbarbutton-hover-background) !important;
111 | }
112 |
113 | .findbar-closebutton:is(:hover, :focus-visible):not([disabled]):active {
114 | background-color: var(--toolbarbutton-active-background) !important;
115 | }
116 |
117 | [anonid="findbar-textbox-wrapper"] {
118 | border-radius: var(--toolbarbutton-border-radius) !important;
119 | overflow: hidden !important;
120 | -moz-box-flex: 1 !important;
121 | }
122 |
123 | .findbar-textbox {
124 | border: none !important;
125 | transition: var(--uc-findbar-textbox-bg-transition-duration, 200ms)
126 | background-color !important;
127 | width: revert !important;
128 | border-radius: 0 !important;
129 | outline: none !important;
130 | height: var(--uc-findbar-height, 22px) !important;
131 | box-sizing: border-box !important;
132 | padding-inline: 6px !important;
133 | -moz-box-flex: 1 !important;
134 | }
135 |
136 | .findbar-textbox input > .anonymous-div {
137 | color: white !important;
138 | opacity: 1 !important;
139 | }
140 |
141 | .findbar-textbox {
142 | background-color: var(--toolbar-field-background-color) !important;
143 | color: var(--lwt-toolbar-field-color) !important;
144 | }
145 |
146 | .findbar-textbox::placeholder {
147 | color: var(--panel-description-color) !important;
148 | }
149 |
150 | .findbar-textbox:focus {
151 | background-color: var(--search-box-focus) !important;
152 | color: var(--lwt-toolbar-field-color) !important;
153 | }
154 |
155 | .findbar-textbox[status="notfound"] {
156 | background-color: var(--search-box-null) !important;
157 | color: var(--panel-description-color) !important;
158 | transition-duration: var(
159 | --findbar-textbox-bg-notfound-transition-duration,
160 | 300ms
161 | ) !important;
162 | transition-timing-function: ease-out !important;
163 | }
164 |
165 | .findbar-textbox[status="notfound"]:focus {
166 | color: var(--ui-text-80) !important;
167 | }
168 |
169 | [anonid="findbar-textbox-wrapper"]:focus-within
170 | .findbar-textbox:not([status="notfound"]) {
171 | background-color: var(--search-box-focus) !important;
172 | color: var(--lwt-toolbar-field-color) !important;
173 | }
174 |
175 | findbar .matches-indicator {
176 | background-color: var(--toolbar-field-background-color);
177 | transition: var(--uc-findbar-textbox-bg-transition-duration, 200ms)
178 | background-color;
179 | mask-image: linear-gradient(to right, transparent 0px, black 20px);
180 | line-height: var(--uc-findbar-height, 22px) !important;
181 | height: var(--uc-findbar-height, 22px) !important;
182 | }
183 |
184 | .findbar-textbox:focus ~ .matches-indicator {
185 | background-color: var(--search-box-focus);
186 | }
187 |
188 | .findbar-textbox[status="notfound"] ~ .matches-indicator {
189 | background-color: var(--search-box-null);
190 | transition-duration: var(
191 | --findbar-textbox-bg-notfound-transition-duration,
192 | 300ms
193 | );
194 | transition-timing-function: ease-out;
195 | }
196 |
197 | [anonid="findbar-textbox-wrapper"]:focus-within
198 | .findbar-textbox:not([status="notfound"])
199 | ~ .matches-indicator {
200 | background-color: var(--search-box-focus);
201 | }
202 |
203 | .findbar-find-previous,
204 | .findbar-find-next {
205 | border: none !important;
206 | padding: 0 !important;
207 | background: var(--toolbar-field-background-color) !important;
208 | fill: rgba(255, 255, 255, 1) !important;
209 | transition: var(--uc-findbar-textbox-bg-transition-duration, 200ms)
210 | background-color !important;
211 | }
212 |
213 | .findbar-find-previous > .toolbarbutton-icon,
214 | .findbar-find-next > .toolbarbutton-icon {
215 | background: none !important;
216 | padding: 0 !important;
217 | width: 12px !important;
218 | margin-inline: 2px !important;
219 | opacity: 0.5 !important;
220 | }
221 |
222 | [anonid="findbar-textbox-wrapper"] > :last-child > .toolbarbutton-icon {
223 | margin-inline-end: calc((var(--uc-findbar-height) - 16px) / 3) !important;
224 | }
225 |
226 | .findbar-find-previous {
227 | padding-inline: 0 !important;
228 | margin-inline: 0 !important;
229 | list-style-image: url("../resources/controls/menu-arrow-left-tiny.svg") !important;
230 | }
231 |
232 | .findbar-find-next {
233 | padding-inline: 0 !important;
234 | margin-inline: 0 !important;
235 | list-style-image: url("../resources/controls/menu-arrow-tiny.svg") !important;
236 | }
237 |
238 | :is(.findbar-find-previous, .findbar-find-next):not([disabled], [hidden]):is(
239 | :hover,
240 | :focus-visible
241 | )
242 | > .toolbarbutton-icon {
243 | background: none !important;
244 | opacity: 1 !important;
245 | }
246 |
247 | :is(.findbar-entire-word, .findbar-case-sensitive):not([disabled], [hidden]):is(
248 | :hover,
249 | :focus-visible,
250 | [checked]
251 | )
252 | :is(.toolbarbutton-icon, .checkbox-icon) {
253 | background: none !important;
254 | opacity: 0.8 !important;
255 | }
256 |
257 | :is(
258 | .findbar-find-previous,
259 | .findbar-find-next,
260 | .findbar-entire-word,
261 | .findbar-case-sensitive
262 | ):not([disabled], [hidden]):hover:active {
263 | box-shadow: none !important;
264 | }
265 |
266 | :is(
267 | .findbar-find-previous,
268 | .findbar-find-next,
269 | .findbar-entire-word,
270 | .findbar-case-sensitive
271 | ):not([disabled], [hidden]):where(
272 | [checked]:hover,
273 | [checked]:focus-visible,
274 | :hover:active,
275 | :focus-visible:hover
276 | )
277 | :is(.toolbarbutton-icon, .checkbox-icon) {
278 | background: none !important;
279 | opacity: 1 !important;
280 | }
281 |
282 | .findbar-textbox[status="notfound"]
283 | ~ :is(.findbar-find-previous, .findbar-find-next)
284 | > .toolbarbutton-icon,
285 | .findbar-textbox[status="notfound"]
286 | ~ :is(.findbar-find-previous, .findbar-find-next)
287 | > .toolbarbutton-icon,
288 | :is(
289 | .findbar-find-previous,
290 | .findbar-find-next,
291 | .findbar-entire-word,
292 | .findbar-case-sensitive
293 | ):is([disabled="true"], [hidden])
294 | :is(.toolbarbutton-icon, .checkbox-icon) {
295 | fill: rgba(255, 255, 255, 1) !important;
296 | opacity: 0.25 !important;
297 | }
298 |
299 | .findbar-textbox:focus
300 | ~ :is(
301 | .findbar-find-previous,
302 | .findbar-find-next,
303 | .findbar-entire-word,
304 | .findbar-case-sensitive
305 | ) {
306 | background-color: var(--search-box-focus) !important;
307 | }
308 |
309 | .findbar-textbox[status="notfound"]
310 | ~ :is(
311 | .findbar-find-previous,
312 | .findbar-find-next,
313 | .findbar-entire-word,
314 | .findbar-case-sensitive
315 | ) {
316 | background-color: var(--search-box-null) !important;
317 | transition: var(
318 | --findbar-textbox-bg-notfound-transition-duration,
319 | 300ms
320 | ) !important;
321 | transition-timing-function: ease-out !important;
322 | }
323 |
324 | .findbar-textbox[status="notfound"]
325 | ~ :is(.findbar-find-previous, .findbar-find-next) {
326 | -moz-user-focus: ignore !important;
327 | }
328 |
329 | .findbar-find-previous,
330 | .findbar-find-next,
331 | .findbar-entire-word,
332 | .findbar-case-sensitive {
333 | transition: var(--uc-findbar-textbox-bg-transition-duration, 200ms)
334 | background-color !important;
335 | }
336 |
337 | .findbar-entire-word,
338 | .findbar-case-sensitive {
339 | -moz-context-properties: fill, fill-opacity;
340 | padding-inline: 2px !important;
341 | appearance: none !important;
342 | border: none !important;
343 | margin: 0 !important;
344 | background: var(--toolbar-field-background-color) !important;
345 | fill: hsl(0, 0%, 100%) !important;
346 | border-radius: 0 !important;
347 | display: -moz-box !important;
348 | }
349 |
350 | [anonid="findbar-textbox-wrapper"] checkbox {
351 | opacity: 1 !important;
352 | }
353 |
354 | [anonid="findbar-textbox-wrapper"] checkbox[hidden]:not([disabled]) {
355 | pointer-events: none !important;
356 | -moz-user-focus: none !important;
357 | }
358 |
359 | .findbar-entire-word {
360 | list-style-image: url("../resources/controls/entire-word.svg");
361 | }
362 |
363 | .findbar-case-sensitive {
364 | list-style-image: url("../resources/controls/case-sensitive.svg");
365 | }
366 |
367 | :is(.findbar-entire-word, .findbar-case-sensitive)
368 | :is(.toolbarbutton-icon, .checkbox-icon) {
369 | margin: 0 !important;
370 | background: none !important;
371 | width: 16px !important;
372 | opacity: 0.4 !important;
373 | appearance: none !important;
374 | display: -moz-inline-box !important;
375 | }
376 |
377 | .findbar-textbox.minimal
378 | ~ :is(
379 | .findbar-case-sensitive,
380 | .findbar-entire-word,
381 | .findbar-find-previous,
382 | .findbar-find-next
383 | ) {
384 | display: none !important;
385 | }
386 |
387 | .findbar-textbox.minimal ~ .matches-indicator {
388 | margin-inline-end: 6px !important;
389 | }
390 |
391 | :is(.findbar-entire-word, .findbar-case-sensitive)
392 | :is(.checkbox-check, .checkbox-label) {
393 | display: none !important;
394 | }
395 |
396 | [anonid="findbar-textbox-wrapper"]:focus-within
397 | .findbar-textbox:not([status="notfound"])
398 | ~ :is(
399 | .findbar-find-previous,
400 | .findbar-find-next,
401 | .findbar-entire-word,
402 | .findbar-case-sensitive
403 | ) {
404 | background-color: var(--search-box-focus) !important;
405 | transition: var(--uc-findbar-textbox-bg-transition-duration, 200ms)
406 | background-color !important;
407 | }
408 |
409 | [anonid="findbar-textbox-wrapper"] {
410 | outline: 0 solid transparent !important;
411 | transition: var(--textbox-outline-transition-duration, 100ms) outline ease-in !important;
412 | }
413 |
414 | [anonid="findbar-textbox-wrapper"]:focus-within {
415 | outline-width: 2px !important;
416 | outline-color: var(
417 | --search-box-focus-outline-color,
418 | -moz-accent-color
419 | ) !important;
420 | transition-duration: calc(
421 | var(--textbox-outline-transition-duration, 100ms) * 0.6
422 | ) !important;
423 | transition-timing-function: ease-out !important;
424 | }
425 |
426 | #findbar-close-container {
427 | display: none !important;
428 | }
429 |
430 | .findbar-find-status,
431 | .found-matches,
432 | .find-status-icon,
433 | .findbar-label,
434 | .findbar-highlight,
435 | .findbar-match-diacritics {
436 | display: none !important;
437 | }
438 |
--------------------------------------------------------------------------------
/chrome/components/nav-bar.css:
--------------------------------------------------------------------------------
1 | /* https://www.reddit.com/r/FirefoxCSS/comments/myypur/how_can_i_remove_extension_tabliss_from_the */
2 | .extensionPage#identity-box
3 | #identity-icon[tooltiptext*="Tabliss"]
4 | ~ #identity-icon-label {
5 | display: none !important;
6 | }
7 |
8 | #identity-box.extensionPage #identity-icon[tooltiptext*="Tabliss"],
9 | #urlbar[pageproxystate="invalid"] #identity-box #identity-icon,
10 | #tracking-protection-icon-container[hidden]
11 | ~ #identity-box[pageproxystate="valid"].notSecure:not(
12 | .chromeUI,
13 | .localResource
14 | )
15 | #identity-icon {
16 | fill-opacity: var(--urlbar-icon-fill-opacity) !important;
17 | list-style-image: url("chrome://global/skin/icons/search-glass.svg") !important;
18 | }
19 |
20 | /* removes background but keeps it when hovered/active */
21 | #identity-box.extensionPage > #identity-icon-box:has([tooltiptext*="Tabliss"]) {
22 | background-color: transparent !important;
23 | }
24 |
25 | #identity-box.extensionPage
26 | > #identity-icon-box:hover:not([open]):has([tooltiptext*="Tabliss"]) {
27 | background-color: var(--urlbar-box-hover-bgcolor) !important;
28 | }
29 |
30 | #identity-box.extensionPage
31 | > #identity-icon-box[open="true"]:has([tooltiptext*="Tabliss"]) {
32 | background-color: var(--urlbar-box-active-bgcolor) !important;
33 | }
34 |
35 | /* keeps icon location consistent */
36 | #urlbar[usertyping="true"]
37 | #tracking-protection-icon-container[hidden]
38 | ~ #identity-box:has([tooltiptext*="Tabliss"]),
39 | #urlbar-input-container[pageproxystate="invalid"]
40 | #tracking-protection-icon-container[hidden]
41 | ~ #identity-box:has([tooltiptext*="Tabliss"]) {
42 | margin-inline-start: calc(var(--identity-box-margin-inline) - 2px);
43 | }
44 |
45 | /* removes shadow over nav bar */
46 | /* #nav-bar:-moz-lwtheme {
47 | box-shadow: none !important;
48 | } */
49 |
50 | /* makes it consistent with the focus width */
51 | #urlbar-background,
52 | #searchbar {
53 | border-width: 2px !important;
54 | }
55 |
56 | .urlbar-icon,
57 | .urlbar-page-action {
58 | filter: none !important;
59 | }
60 |
61 | /* force text color? */
62 | .urlbar-page-action,
63 | #urlbar-go-button,
64 | .search-go-button {
65 | color: var(--uc-urlbar-box-text-color) !important;
66 | }
67 |
68 | .urlbar-page-action:not([disabled]):hover,
69 | #urlbar-go-button:hover,
70 | .search-go-button:hover,
71 | .urlbar-page-action:not([disabled]):active,
72 | #urlbar-go-button:active,
73 | .search-go-button:active,
74 | .urlbar-page-action[open="true"]:not([disabled]) {
75 | color: var(--urlbar-box-hover-text-color) !important;
76 | }
77 |
78 | .urlbar-page-action:not([disabled]):active,
79 | #urlbar-go-button:active,
80 | .search-go-button:active {
81 | background-color: var(--urlbar-box-active-bgcolor) !important;
82 | }
83 |
84 | .urlbar-page-action:not([disabled]):hover > #star-button[starred],
85 | .urlbar-page-action:not([disabled]):active > #star-button[starred] {
86 | fill: var(--urlbar-box-hover-text-color) !important;
87 | }
88 |
89 | /***** NAV ICONS CHANGE *****/
90 |
91 | #back-button,
92 | #forward-button {
93 | padding: 0 !important;
94 | }
95 |
96 | #back-button > .toolbarbutton-icon {
97 | list-style-image: url("../resources/nav-bar/back.svg") !important;
98 | }
99 |
100 | #forward-button > .toolbarbutton-icon {
101 | list-style-image: url("../resources/nav-bar/forward.svg") !important;
102 | }
103 |
104 | #back-button > .toolbarbutton-icon,
105 | #forward-button > .toolbarbutton-icon {
106 | width: calc(2 * var(--toolbarbutton-inner-padding) + 18px) !important;
107 | height: calc(2 * var(--toolbarbutton-inner-padding) + 18px) !important;
108 | }
109 |
110 | .bookmark-item[container] {
111 | list-style-image: url("");
112 | }
113 |
--------------------------------------------------------------------------------
/chrome/components/sidebar.css:
--------------------------------------------------------------------------------
1 | #browser {
2 | position: relative !important;
3 | }
4 |
5 | #sidebar-box {
6 | display: flex !important;
7 | position: absolute !important;
8 | top: 0 !important;
9 | bottom: 0 !important;
10 | left: 0 !important;
11 | right: auto !important;
12 | z-index: 1 !important;
13 | flex-direction: column !important;
14 | box-shadow: 0px 0px 8px -4px hsla(240, 4%, 0%, 0.6),
15 | 0px 0px 15px 0px hsla(0, 0%, 0%, 0.2) !important;
16 | }
17 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/_index.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /************************************/
4 | /****** simpleMenuWizard START ******/
5 |
6 | /**********************************************
7 | Modify these files themselves to your needs.
8 | Do not modify the following @import block.
9 | **********************************************/
10 |
11 | /*** When right-clicking on... ***/
12 | @import url("./blank-context.css"); /* ...a blank area on a webpage */
13 | @import url("./frame-context.css"); /* ...an iframe */
14 | @import url("./image-context.css"); /* ...an image */
15 | @import url("./input-context.css"); /* ...an input-field */
16 | @import url("./link-context.css"); /* ...a link */
17 | @import url("./main-hamburger.css"); /* Leftclick on the hamburger menu on top right */
18 | @import url("./media-context.css"); /* ...media like audio or html5 video */
19 | @import url("./main-menubar.css"); /* Leftclick on the main menubar (open with ALT key) */
20 | @import url("./newtab-containers.css"); /* ...the plus sign to open a new tab or container */
21 | @import url("./select-context.css"); /* ...selected text or selected object */
22 | @import url("./sidebar-context.css"); /* ...items in bookmarks- or history sidebar */
23 | @import url("./sidebar-header.css"); /* Leftclick on the sidebar header */
24 | @import url("./source-context.css"); /* ...a blank area when viewing source code */
25 | @import url("./tab-context.css"); /* ...a tab */
26 | @import url("./toolbar-context.css"); /* ...the toolbar or tabbar */
27 | @import url("./urlbar-context.css"); /* ...the addressbar */
28 |
29 | /*** Options ***/
30 |
31 | /**********************************************************
32 | How to activate or deactivate the following options:
33 | Remove '/*' at the beginning of a line (not comment line) to activate the option
34 | Add '/*' at the beginning of the line (not comment line) to deactivate the option
35 | **********************************************************/
36 |
37 | /*** Hide all "Send - to Device" entries ***/
38 | @import url("./opt_noSendToDevice.css");
39 | /*** Hide all inactive menu items ***/
40 | /* #mainPopupSet menuitem[disabled="true"][id][data-l10n-id] { display: none !important; }
41 | /****** simpleMenuWizard END ******/
42 | /**********************************/
43 |
44 | /* extensions */
45 | menuitem[id*="ublock"],
46 | menuitem[id*="tampermonkey"],
47 | menuitem[id*="open-tab-then-discard"],
48 | menuitem[label*="Clean Link"],
49 | menugroup#context-navigation,
50 | menu[label*="Tampermonkey"] + menuseperator,
51 | menuitem#anonaddy,
52 | menuitem[image*="libredirect"],
53 | menuitem.context-menu-add-engine,
54 | menuitem[id*="send_to_hydrus_meme"] {
55 | display: none !important;
56 | }
57 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/blank-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** blank-context.css ***/
9 | /*** When right-clicking on a blank area on a webpage ***/
10 |
11 | #context-navigation, /* Hide whole navigation bar */
12 | /* #context-back, /* Navi: Back arrow */
13 | /* #context-forward, /* Navi: Forward arrow */
14 | /* #context-reload, /* Navi: Reload icon -
15 | combined position with stop icon */
16 | /* #context-stop, /* Navi: Stop icon (x) -
17 | combined position with reload icon */
18 | /* #context-bookmarkpage, /* Navi: Bookmark star icon */
19 | #context-sep-navigation, /************** Separator ***************/
20 | /* #context-savepage, /* Save Page As... */
21 | #context-pocket, /* Save Page to Pocket */
22 | /* #context-selectall, /* Select All */
23 | /* #context-sep-selectall, /************** Separator ***************/
24 | /* #context-take-screenshot, /* Take Screenshot */
25 | /* #context-sep-screenshots, /************** Separator ***************/
26 | /* #context-viewsource, /* View Page Source */
27 | /* #context-inspect, /* Inspect (Q) */
28 | #context-media-eme-separator, /************** Separator ***************/
29 | /* Here are context menus of addons */
30 |
31 | #leave_this_dummy_here {
32 | display: none !important;
33 | }
34 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/frame-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** frame-context.css ***/
9 | /*** When right-clicking on an iframe ***/
10 |
11 | /*** "This Frame" in context menu ***/
12 | /* menu#frame, /* This Frame */
13 | /* #context-showonlythisframe, /* Show Only This Frame */
14 | /* #context-openframeintab, /* Open Frame in New Tab */
15 | /* #context-openframe, /* Open Frame in New Window */
16 | /* #open-frame-sep, /******** Separator *********/
17 | /* #context-reloadframe, /* Reload Frame */
18 | /* #context-reloadframe + menuseparator, /******** Separator *********/
19 | #context-bookmarkframe, /* Bookmark This Frame */
20 | /* #context-saveframe, /* Save Frame As… */
21 | #context-saveframe + menuseparator, /******** Separator *********/
22 | #context-printframe, /* Print Frame… */
23 | /* #context-printframe + menuseparator, /******** Separator *********/
24 | /* #context-take-frame-screenshot, /* Take Screenshot */
25 | /* #context-take-frame-screenshot
26 | + menuseparator, /******** Separator *********/
27 | /* #context-viewframesource, /* View Frame Source */
28 | /* #context-viewframeinfo, /* View Frame Info */
29 | /* #spell-separator, /*** Separator ***/
30 |
31 | #leave_this_dummy_here {
32 | display: none !important;
33 | }
34 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/image-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** image-context.css ***/
9 | /*** When right-clicking on an image ***/
10 |
11 | /* #context-reloadimage, /* Reload Image */
12 | /* #context-viewimage, /* Open Image in New Tab */
13 | /* #context-saveimage, /* Save Image As… */
14 | /* #context-copyimage-contents, /* Copy Image */
15 | /* #context-copyimage, /* Copy Image Link */
16 | #context-sendimage, /* Email Image… */
17 | #context-sep-setbackground, /************ Separator ************/
18 | #context-setDesktopBackground, /* Set As Desktop Background... */
19 | /* #context-sep-ctp, /************ Separator ************/
20 | /* #context-inspect, /* Inspect (Q) */
21 |
22 | #leave_this_dummy_here {
23 | display: none !important;
24 | }
25 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/input-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** input-context.css ***/
9 | /*** When right-clicking on an input-field ***/
10 |
11 | /* #fill-login, /* Use Saved Login */
12 | /* #fill-login-generated-password, /* Suggest Strong Password… */
13 | /* #manage-saved-logins, /* Manage Logins */
14 | /* #passwordmgr-items-separator, /************ Separator *************/
15 | /* #spell-no-suggestions, /* (No Spelling Suggestions) */
16 | /* menuitem.spell-suggestion, /* ~ List of spelling suggestions ~ */
17 | /* #spell-add-to-dictionary, /* Add To Dictionary */
18 | /* #spell-undo-add-to-dictionary, /* Undo Add To Dictionary */
19 | /* #spell-suggestions-separator, /************ Separator *************/
20 | /* #context-undo, /* Undo */
21 | /* #context-redo, /* Redo */
22 | /* #context-sep-redo, /************ Separator *************/
23 | /* #context-cut, /* Cut */
24 | /* #context-copy, /* Copy */
25 | /* #context-paste, /* Paste */
26 | /* #context-delete, /* Delete */
27 | /* #context-selectall, /* Select All */
28 | /* #context-sep-selectall, /************ Separator *************/
29 | /* #context-keywordfield, /* Add a Keyword for this Search… */
30 | /* #spell-separator, /************ Separator *************/
31 | /* #spell-check-enabled, /* Check Spelling */
32 | /* #spell-dictionaries, /* Languages */
33 | /* #spell-check-dictionary-en-US, /* English (United States) */
34 | /* #spell-language-separator, /************ Separator *************/
35 | /* #spell-add-dictionaries-main, /* Add Dictionaries… */
36 | /* #context-sep-bidi, /************ Separator *************/
37 | /* #context-bidi-text-direction-toggle, /* Switch Text Direction */
38 | /* #context-bidi-page-direction-toggle, /* Switch Page Direction */
39 | /* #fill-login-separator, /************ Separator *************/
40 | /* #fill-login, /* Fill Login */
41 | /* #inspect-separator, /************ Separator *************/
42 | /* #context-inspect, /* Inspect (Q) */
43 |
44 | #leave_this_dummy_here {
45 | display: none !important;
46 | }
47 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/link-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** link-context.css ***/
9 | /*** When right-clicking on a link ***/
10 |
11 | /* #context-openlinkintab, /* Open Link in New Tab */
12 | /* #context-openlinkinusercontext-menu, /* Open Link in New Container Tab */
13 | /* #context-openlink, /* Open Link in New Window */
14 | /* #context-openlinkprivate, /* Open Link in New Private Window */
15 | /* #context-sep-open, /************ Separator *************/
16 | #context-bookmarklink, /* Bookmark Link */
17 | #context-savelink, /* Save Link As… */
18 | #context-savelinktopocket, /* Save Link to Pocket */
19 | #context-copyemail, /* Copy Email Address */
20 | /* #context-copylink, /* Copy Link */
21 | #context-sendlinktodevice, /* Send Link to Device */
22 | #context-sep-sendlinktodevice, /************ Separator *************/
23 | /* #context-sep-copylink, /************ Separator *************/
24 | /* #context-searchselect, /* Search [Google] for "[selected]" */
25 | /* #frame-sep, /************ Separator *************/
26 | /* #context-inspect, /* Inspect (Q) */
27 |
28 | #leave_this_dummy_here {
29 | display: none !important;
30 | }
31 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/main-hamburger.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** main-hamburger.css ***/
9 | /*** When left-clicking on the hamburger menu on top right ***/
10 |
11 | /* #appMenu-proton-update-banner, /* Downloading Firefox update /
12 | Update available — download now /
13 | Unable to update — system incompatible /
14 | Update available — restart now */
15 | /* #appMenu-fxa-status2, /* Sync and save data / Sign In */
16 | /* #appMenu-fxa-separator, /*********** Separator ***********/
17 | /* #appMenu-new-tab-button2, /* New Tab */
18 | /* #appMenu-new-window-button2, /* New Window */
19 | /* #appMenu-new-private-window-button2, /* New Private Window */
20 | /* #appMenu-new-private-window-button2
21 | + toolbarseparator, /*********** Separator ***********/
22 | /* #appMenu-bookmarks-button, /* Bookmarks */
23 | /* #panelMenuBookmarkThisPage, /* Bookmark Current Tab */
24 | /* #panelMenu_searchBookmarks, /* Search Bookmarks */
25 | /* #panelMenu_viewBookmarksToolbar, /* Show Bookmarks Toolbar */
26 | /* #panelMenu_viewBookmarksToolbar + toolbarseparator, /*********** Separator ***********/
27 | /* #panelMenu_recentBookmarks, /* Recent Bookmarks (label) */
28 | /* #panelMenu_bookmarksMenu, /* Recent Bookmarks (list) */
29 | /* #panelMenu_showAllBookmarks, /* Manage Bookmarks */
30 | /* #appMenu-history-button, /* History */
31 | /* #appMenuRecentlyClosedTabs, /* Recently Closed Tabs */
32 | /* #appMenu-library-recentlyClosedTabs > .restoreallitem, /* Reopen All Tabs */
33 | /* #appMenuRecentlyClosedWindows, /* Recently Closed Windows */
34 | /* #appMenuRestoreSession, /* Restore Previous Session */
35 | /* #appMenuRestoreSession + toolbarseparator, /*********** Separator ***********/
36 | /* #appMenuClearRecentHistory, /* Clear Recent History… */
37 | /* #appMenuClearRecentHistory + toolbarseparator, /*********** Separator ***********/
38 | /* #panelMenu_recentHistory, /* Recent History (label) */
39 | /* #appMenu_historyMenu, /* Recent History (list) */
40 | /* #appMenu_historyMenu + toolbarseparator, /*********** Separator ***********/
41 | /* #PanelUI-historyMore, /* Manage History */
42 | /* #appMenu-downloads-button, /* Downloads */
43 | /* #appMenu-passwords-button, /* Passwords */
44 | /* #appMenu-extensions-themes-button, /* Add-ons and Themes */
45 | /* #appMenu-extensions-themes-button
46 | + toolbarseparator, /*********** Separator ***********/
47 | /* #appMenu-print-button2, /* Print… */
48 | /* #appMenu-save-file-button2, /* Save Page As… */
49 | /* #appMenu-find-button2, /* Find In Page… */
50 | /* #appMenu-zoom-controls, /* Zoom */
51 | /* #appMenu-zoom-controls + toolbarseparator, /*********** Separator ***********/
52 | /* #appMenu-settings-button, /* Settings */
53 | /* #appMenu-more-button2, /* More Tools */
54 | /* #appmenu-moreTools-button, /* Customize Toolbar… */
55 | /* #appmenu-moreTools-button + toolbarseparator, /*********** Separator ***********/
56 | /* #appmenu-developer-tools, /* Browser Tools (label) */
57 | /* #appmenu-developer-tools-view
58 | > toolbarbutton[key="key_toggleToolbox"], /* Web Developer Tools */
59 | /* #appmenu-developer-tools-view
60 | > toolbarbutton[oncommand="switchToTabHavingURI('about:performance', true)"],
61 | /* Task Manager */
62 | /* #appmenu-developer-tools-view
63 | > toolbarbutton[oncommand="switchToTabHavingURI('about:performance', true)"]
64 | + toolbarbutton[label*="Debug"], /* Remote Debugging */
65 | /* #appmenu-developer-tools-view
66 | > toolbarbutton[key="key_browserToolbox"], /* Browser Toolbox */
67 | /* #appmenu-developer-tools-view
68 | > toolbarbutton[key="key_browserToolbox"]
69 | + toolbarbutton[label*="Browser"], /* Browser Content Toolbox */
70 | /* #appmenu-developer-tools-view
71 | > toolbarbutton[key="key_browserConsole"], /* Browser Console */
72 | /* #appmenu-developer-tools-view
73 | > toolbarbutton[key="key_responsiveDesignMode"], /* Responsive Design Mode */
74 | /* #appmenu-developer-tools-view
75 | > toolbarbutton[key="key_responsiveDesignMode"]
76 | + toolbarbutton, /* Eyedropper */
77 | /* #appmenu-developer-tools-view
78 | > toolbarbutton[key="key_viewSource"], /* Page Source */
79 | /* #appmenu-developer-tools-view
80 | > toolbarbutton[key="key_viewSource"]
81 | + toolbarbutton, /* Extensions for Developers */
82 | /* #appMenu-help-button2, /* Help */
83 | /* #PanelUI-helpItems > #appMenu_menu_openHelp, /* Get Help */
84 | /* #PanelUI-helpItems > #appMenu_feedbackPage, /* Submit Feedback… */
85 | /* #PanelUI-helpItems > #appMenu_helpSafeMode, /* Troubleshoot Mode… */
86 | /* #PanelUI-helpItems > #appMenu_troubleShooting, /* More Troubleshooting Information */
87 | /* #PanelUI-helpItems > #appMenu_help_reportSiteIssue, /* Report Site Issue… */
88 | /* #PanelUI-helpItems
89 | > #appMenu_menu_HelpPopup_reportPhishingtoolmenu, /* Report Deceptive Site… */
90 | /* #PanelUI-helpItems > #appMenu_aboutName, /* About Firefox */
91 | /* #appMenu-help-button2 + toolbarseparator, /*********** Separator ***********/
92 | /* #appMenu-quit-button2, /* Exit */
93 |
94 | #leave_this_dummy_here {
95 | display: none !important;
96 | }
97 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/media-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** media-context.css ***/
9 | /*** When right-clicking on media like audio or html5 video ***/
10 |
11 | /* #context-media-play, /* Play */
12 | /* #context-media-pause, /* Pause */
13 | /* #context-media-mute, /* Mute */
14 | /* #context-media-unmute, /* Unmute */
15 | /* #context-media-playbackrate, /* Speed */
16 | /* #context-media-playbackrate-050x, /* 0.5× */
17 | /* #context-media-playbackrate-100x, /* 1.0× */
18 | /* #context-media-playbackrate-125x, /* 1.25× */
19 | /* #context-media-playbackrate-150x, /* 1.5× */
20 | /* #context-media-playbackrate-200x, /* 2× */
21 | /* #context-media-loop, /* Loop */
22 | /* #context-leave-dom-fullscreen, /* Exit Full Screen */
23 | /* #context-video-fullscreen, /* Full Screen */
24 | /* #context-media-hidecontrols, /* Hide Controls */
25 | /* #context-media-showcontrols, /* Show Controls */
26 | /* #context-media-sep-video-commands, /************ Separator ************/
27 | /* #context-viewvideo, /* Open Video in New Tab */
28 | /* #context-video-pictureinpicture, /* Watch in Picture-in-Picture */
29 | /* #context-media-sep-commands, /************ Separator ************/
30 | /* #context-video-saveimage, /* Take Snapshot… */
31 | /* #context-savevideo, /* Save Video As… */
32 | /* #context-saveaudio, /* Save Audio As… */
33 | /* #context-copyvideourl, /* Copy Video Link */
34 | /* #context-copyaudiourl, /* Copy Audio Link */
35 | #context-sendvideo, /* Email Video… */
36 | #context-sendaudio, /* Email Audio… */
37 | /* #context-sep-setbackground, /************ Separator ************/
38 | /* #context-inspect, /* Inspect (Q) */
39 |
40 | #leave_this_dummy_here {
41 | display: none !important;
42 | }
43 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/newtab-containers.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** newtab-containers.css ***/
9 | /*** When right-clicking on the plus sign to open a new tab or container ***/
10 |
11 | /* #new-tab-button-popup > menuitem[accesskey="N"], /* No Container */
12 | /* #new-tab-button-popup > menuseparator:nth-of-type(1), /************ Separator *************/
13 | /* #new-tab-button-popup > menuitem[data-usercontextid="1"], /* Personal */
14 | /* #new-tab-button-popup > menuitem[data-usercontextid="2"], /* Work */
15 | /* #new-tab-button-popup > menuitem[data-usercontextid="3"], /* Banking */
16 | /* #new-tab-button-popup > menuitem[data-usercontextid="4"], /* Shopping */
17 | /* #new-tab-button-popup > menuseparator:nth-of-type(2), /************ Separator *************/
18 | /* #new-tab-button-popup >
19 | menuitem[command="Browser:OpenAboutContainers"], /* Manage Containers */
20 |
21 | #leave_this_dummy_here {
22 | display: none !important;
23 | }
24 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/opt_noSendToDevice.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** opt_noSendToDevice.css ***/
9 |
10 | #context-sendaudio, /* Email Audio */
11 | #context-sendvideo, /* Email Video */
12 | #context-sendimage, /* Email Image */
13 | #context-sendpagetodevice,
14 | #context-sep-sendpagetodevice,
15 | #context-sendlinktodevice,
16 | #context-sep-sendlinktodevice,
17 | #context_sendTabToDevice,
18 | #context_sendTabToDevice_separator,
19 |
20 | #pageAction-panel-sendToDevice,
21 | #pageAction-panel-emailLink, /* Email Link */
22 |
23 | #leave_this_dummy_here {
24 | display: none !important;
25 | }
26 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/select-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** select-context.css ***/
9 | /*** When right-clicking on selected text or selected object ***/
10 |
11 | /* #context-openlinkincurrent, /* Open Link */
12 | /* #context-copy, /* Copy */
13 | /* #context-selectall, /* Select All */
14 | #context-print-selection, /* Print Selection */
15 | /* #context-sep-selectall, /************ Separator *************/
16 | /* #context-take-screenshot, /* Take Screenshot */
17 | /* #context-sep-screenshots, /************ Separator *************/
18 | /* #context-searchselect, /* Search [Google] for "[selected]" */
19 | /* #frame-sep, /************ Separator *************/
20 | /* #context-viewpartialsource-selection, /* View Selection Source */
21 | #context-inspect-a11y, /* Inspect Accessibility Properties */
22 | /* #context-inspect, /* Inspect (Q) */
23 |
24 | #leave_this_dummy_here {
25 | display: none !important;
26 | }
27 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/sidebar-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** sidebar-context.css ***/
9 | /*** When right-clicking on items in bookmarks- or history sidebar ***/
10 |
11 | /* #placesContext_open, /* Open */
12 | /* #placesContext_openBookmarkContainer\:tabs, /* Open All Bookmarks */
13 | /* #placesContext_openBookmarkLinks\:tabs, /* Open All Bookmarks */
14 | /* #placesContext_open\:newtab, /* Open in a New Tab */
15 | /* #placesContext_openContainer\:tabs, /* Open All in Tabs (folder) */
16 | /* #placesContext_openLinks\:tabs, /* Open All in Tabs (selected tabs) */
17 | /* #placesContext_open\:newwindow, /* Open in a New Window */
18 | /* #placesContext_open\:newprivatewindow, /* Open in a New Private Window */
19 | /* #placesContext_openSeparator, /************ Separator *************/
20 | /* #placesContext_show_bookmark\:info, /* Edit Bookmark… */
21 | /* #placesContext_show\:info, /* Edit… */
22 | /* #placesContext_show_folder\:info, /* Rename Folder… */
23 | /* #placesContext_deleteBookmark, /* Remove Bookmark */
24 | /* #placesContext_deleteFolder, /* Remove Folder */
25 | /* #placesContext_delete, /* Delete */
26 | /* #placesContext_delete_history, /* Delete Page */
27 | /* #placesContext_deleteHost, /* Forget About This Site */
28 | /* #placesContext_sortBy\:name, /* Sort By Name */
29 | /* #placesContext_deleteSeparator, /************ Separator *************/
30 | /* #placesContext_cut, /* Cut */
31 | /* #placesContext_copy, /* Copy */
32 | /* #placesContext_paste_group, /* Paste */
33 | /* #placesContext_editSeparator, /************ Separator *************/
34 | /* #placesContext_new\:bookmark, /* Add Bookmark... */
35 | /* #placesContext_new\:folder, /* Add Folder... */
36 | /* #placesContext_new\:separator, /* Add Separator */
37 | /* #placesContext_newSeparator, /************ Separator *************/
38 | /* #placesContext_paste, /* Paste */
39 | /* #placesContext_pasteSeparator, /************ Separator *************/
40 | /* #placesContext_createBookmark, /* Bookmark Page */
41 | /* #toggle_PersonalToolbar, /* Bookmarks Toolbar */
42 | /* #toolbar-context-menu-bookmarks-toolbar-always-show-2, /* Always Show */
43 | /* #toolbar-context-menu-bookmarks-toolbar-on-new-tab-2, /* Only Show on New Tab */
44 | /* #toolbar-context-menu-bookmarks-toolbar-never-show-2, /* Never Show */
45 | /* #show-other-bookmarks_PersonalToolbar, /* Show Other Bookmarks */
46 | /* #placesContext_showAllBookmarks, /* Manage Bookmarks */
47 |
48 | #leave_this_dummy_here {
49 | display: none !important;
50 | }
51 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/sidebar-header.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** sidebar-header.css ***/
9 | /*** When left-clicking on the sidebar header ***/
10 |
11 | /* #sidebar-header, /* Hide sidebar header completely (use shortcuts only) */
12 | /* #sidebar-close, /* Hide close button (X) */
13 | /* #sidebar-switcher-target, /* Hide sidebar switcher */
14 |
15 | /* TODO: Where is the following? Cannot reproduce */
16 | /* #sidebar-switcher-bookmarks, /* Bookmarks */
17 | /* #sidebar-switcher-history, /* History */
18 | /* #sidebar-switcher-tabs, /* Synced Tabs */
19 | /* #sidebar-switcher-tabs + toolbarseparator, /*************** Separator ***************/
20 | /* #sidebar-extensions-separator, /*** Separator (after possible addons) ***/
21 | /* #sidebar-reverse-position, /* Move Sidebar to Right / Left */
22 | /* #sidebar-reverse-position + toolbarseparator, /************** Separator ****************/
23 | /* toolbarbutton[oncommand="SidebarUI.hide()"], /* Close Sidebar */
24 |
25 | #leave_this_dummy_here {
26 | display: none !important;
27 | }
28 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/source-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** source-context.css ***/
9 | /*** When right-clicking on a blank area when viewing source code ***/
10 | /*** Note: Check out blank-context.css, it is very similar and more detailed. ***/
11 |
12 | /* #context-navigation, /* Hide whole navigation bar */
13 | /* #context-sep-navigation, /********* Separator *********/
14 | /* #context-viewsource-goToLine, /* Go to Line… */
15 | /* #context-viewsource-wrapLongLines, /* Wrap Long Lines */
16 | /* #context-viewsource-highlightSyntax, /* Syntax Highlighting */
17 | /* #context-sep-viewsource-commands, /********* Separator *********/
18 | /* #context-savepage, /* Save Page As... */
19 | /* #context-selectall, /* Select All */
20 | /* #context-sep-selectall, /********* Separator *********/
21 | /* #context-take-screenshot, /* Take Screenshot */
22 | /* #context-sep-screenshots, /********* Separator *********/
23 | /* #context-viewsource, /* View Page Source */
24 | /* #context-inspect, /* Inspect (Q) */
25 |
26 | #leave_this_dummy_here {
27 | display: none !important;
28 | }
29 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/tab-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** tab-context.css ***/
9 | /*** When right-clicking on a tab ***/
10 |
11 | /* #tabContextMenu #context_openANewTab, /* New Tab */
12 | /* #tabContextMenu #context_openANewTab + menuseparator, /******** Separator ********/
13 | /* #tabContextMenu #context_reloadTab, /* Reload Tab */
14 | /* #tabContextMenu #context_reloadSelectedTabs, /* Reload Tabs */
15 | /* #tabContextMenu #context_toggleMuteTab, /* Mute / Unmute Tab */
16 | /* #tabContextMenu #context_toggleMuteSelectedTabs, /* Mute / Unmute Tabs */
17 | /* #tabContextMenu #context_pinTab, /* Pin Tab */
18 | /* #tabContextMenu #context_unpinTab, /* Unpin Tab */
19 | /* #tabContextMenu #context_pinSelectedTabs, /* Pin Tabs */
20 | /* #tabContextMenu #context_unpinSelectedTabs, /* Unpin Tabs */
21 | /* #tabContextMenu #context_duplicateTab, /* Duplicate Tab */
22 | /* #tabContextMenu #context_duplicateTabs, /* Duplicate Tabs */
23 | /* #tabContextMenu #context_duplicateTabs + menuseparator, /******** Separator ********/
24 | #tabContextMenu #context_bookmarkSelectedTabs, /* Bookmark Tabs… */
25 | #tabContextMenu #context_bookmarkTab, /* Bookmark Tab */
26 | /* #tabContextMenu #context_moveTabOptions, /* Move Tab */
27 | /* #tabContextMenu #context_moveToStart, /* Move to Start */
28 | /* #tabContextMenu #context_moveToEnd, /* Move to End */
29 | /* #tabContextMenu #context_openTabInWindow, /* Move to New Window */
30 | #tabContextMenu #context_sendTabToDevice, /* Send Tab to Device */
31 | #tabContextMenu .share-tab-url-item, /* Share tab URL via 3rd party app */
32 | /* #tabContextMenu #context_reopenInContainer, /* Reopen in Container */
33 | #tabContextMenu #context_dummy, /* Send Tab to Device Submenu not yet supported */
34 | /* #tabContextMenu #context_selectAllTabs, /* Select All Tabs */
35 | /* #tabContextMenu #context_selectAllTabs + menuseparator, /******** Separator ********/
36 | /* #tabContextMenu #context_closeTab, /* Close Tab */
37 | /* #tabContextMenu #context_closeTabOptions, /* Close Multiple Tabs */
38 | /* #tabContextMenu #context_closeTabsToTheStart, /* Close Tabs to Left */
39 | /* #tabContextMenu #context_closeTabsToTheEnd, /* Close Tabs to Right */
40 | /* #tabContextMenu #context_closeOtherTabs, /* Close Other Tabs */
41 | /* #tabContextMenu #context_undoCloseTab, /* Undo Close Tab */
42 |
43 | #leave_this_dummy_here {
44 | display: none !important;
45 | }
46 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/toolbar-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** toolbar-context.css ***/
9 | /*** When right-clicking on the toolbar or tabbar ***/
10 |
11 | /* #toolbar-context-menu .customize-context-manageExtension, /* Manage Extension */
12 | /* #toolbar-context-menu .customize-context-removeExtension, /* Remove Extension */
13 | #toolbar-context-menu .customize-context-reportExtension, /* Report Extension */
14 | #toolbar-context-menu .customize-context-reportExtension
15 | + menuseparator, /******* Seperator ********/
16 | /* #toolbar-context-menu .customize-context-moveToPanel, /* Pin to Overflow Menu */
17 | /* #toolbar-context-menu #toolbar-context-autohide-downloads-button, /* Hide Button When Empty */
18 | /* #toolbar-context-menu .customize-context-removeFromToolbar, /* Remove from Toolbar */
19 | /* #toolbar-context-menu #toolbarItemsMenuSeparator, /******* Seperator ********/
20 | /* #toolbar-context-menu #toggle_toolbar-menubar, /* Menu Bar */
21 | /* #toolbar-context-menu #toggle_PersonalToolbar, /* Bookmarks Toolbar */
22 | /* #toolbar-context-menu
23 | menuitem[data-l10n-id="toolbar-context-menu-bookmarks-toolbar-always-show-2"], /* Always Show */
24 | /* #toolbar-context-menu
25 | menuitem[data-l10n-id="toolbar-context-menu-bookmarks-toolbar-on-new-tab-2"], /* Only Show on New Tab */
26 | /* #toolbar-context-menu
27 | menuitem[data-l10n-id="toolbar-context-menu-bookmarks-toolbar-never-show-2"], /* Never Show */
28 | /* #toolbar-context-menu #viewToolbarsMenuSeparator, /******* Seperator ********/
29 | /* #toolbar-context-menu #viewCustomizeToolbar, /* Customize Toolbar… */
30 |
31 | #leave_this_dummy_here {
32 | display: none !important;
33 | }
34 |
--------------------------------------------------------------------------------
/chrome/components/simpleMenuWizard/urlbar-context.css:
--------------------------------------------------------------------------------
1 | /*AGENT_SHEET*/
2 |
3 | /*********************************************************************************************
4 | simpleMenuWizard: userChrome.css tweaks to remove context menu items in Firefox.
5 | https://github.com/stonecrusher/simpleMenuWizard
6 | **********************************************************************************************
7 |
8 | /*** urlbar-context.css ***/
9 | /*** When right-clicking on the addressbar ***/
10 |
11 | /* #urlbar menuitem[cmd="cmd_undo"], /* Undo */
12 | /* #urlbar menuitem[cmd="cmd_redo"], /* Redo */
13 | /* #urlbar menuitem[cmd="cmd_redo"] + menuseparator, /* Separator */
14 | /* #urlbar menuitem[cmd="cmd_cut"], /* Cut */
15 | /* #urlbar menuitem[cmd="cmd_copy"], /* Copy */
16 | /* #urlbar menuitem[cmd="cmd_paste"], /* Paste */
17 | /* #urlbar menuitem[anonid="paste-and-go"], /* Paste and Go */
18 | /* #urlbar menuitem[cmd="cmd_delete"], /* Delete */
19 | /* #urlbar menuitem[cmd="cmd_selectAll"], /* Select All */
20 | menuseparator.menuseparator-add-engine /*** Separator ***/
21 |
22 | #leave_this_dummy_here {
23 | display: none !important;
24 | }
25 |
--------------------------------------------------------------------------------
/chrome/components/tabs.css:
--------------------------------------------------------------------------------
1 | .titlebar-spacer[type="pre-tabs"],
2 | .titlebar-spacer[type="post-tabs"] {
3 | width: var(--uc-tab-margin, 4px) !important;
4 | }
5 |
6 | .tabbrowser-tab {
7 | padding: 0 calc(var(--uc-tab-margin, 4px) / 2) !important;
8 | }
9 |
10 | #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs])
11 | > #tabbrowser-arrowscrollbox
12 | > .tabbrowser-tab[first-visible-unpinned-tab] {
13 | margin-inline-start: unset !important;
14 | }
15 |
16 | /* remove shadow from selected tabs */
17 | #TabsToolbar #firefox-view-button[open] > .toolbarbutton-icon,
18 | #tabbrowser-tabs:not([noshadowfortests])
19 | .tab-background:is([selected], [multiselected]) {
20 | box-shadow: none !important;
21 | }
22 |
23 | /* adds borders around tabs */
24 | .tab-background {
25 | outline: var(--uc-tab-outline-width, 1px) solid
26 | color-mix(in srgb, currentColor 25%, transparent) !important;
27 | outline-offset: calc(0px - var(--uc-tab-outline-width, 1px)) !important;
28 | }
29 |
30 | /* multiselected tabs should have colored borders too */
31 | .tab-background[selected]:-moz-lwtheme,
32 | .tab-background[multiselected="true"]:-moz-lwtheme {
33 | outline: var(--uc-tab-outline-width) solid
34 | var(--lwt-tab-line-color, var(--lwt-tabs-border-color, currentColor)) !important;
35 | outline-offset: calc(0px - var(--uc-tab-outline-width, 1px)) !important;
36 | }
37 |
38 | /* make inactive tabs shorter */
39 | /* https://www.reddit.com/r/FirefoxCSS/comments/brklu0/the_right_way_to_change_your_tab_max_width */
40 | .tabbrowser-tab[fadein]:not([pinned], [style*="max-width"], [selected="true"]) {
41 | max-width: var(--uc-tab-inactive-max-width, calc(225px / 2)) !important;
42 | }
43 |
44 | /* inactive tabs are faded */
45 | .tabbrowser-tab:not([selected="true"], [pinned]) .tab-content {
46 | opacity: var(--uc-tab-inactive-opacity, 0.5);
47 | }
48 |
49 | /* for some reason, the close button appears when the first tab on the list is selected; this is a fix (?) */
50 | .tabbrowser-tab:not([pinned="true"], [selected="true"])
51 | > .tab-stack
52 | > .tab-content
53 | > .tab-close-button:not([selected="true"]) {
54 | display: none !important;
55 | }
56 |
57 | /* show close button when hovered but not when pinned */
58 | .tabbrowser-tab:not([pinned="true"]):hover
59 | > .tab-stack
60 | > .tab-content
61 | > .tab-close-button:not([selected="true"]) {
62 | display: -moz-box !important;
63 | }
64 |
65 | /* don't show all tabs button */
66 | #alltabs-button {
67 | display: none !important;
68 | }
69 |
70 | /***** container tabs *****/
71 |
72 | .tabbrowser-tab[usercontextid] {
73 | color: color-mix(
74 | in srgb,
75 | var(--identity-tab-color) 30%,
76 | var(--lwt-tab-text)
77 | ) !important;
78 | --lwt-selected-tab-background-color: color-mix(
79 | in srgb,
80 | var(--identity-tab-color) 11%,
81 | transparent
82 | ) !important;
83 | }
84 |
85 | /* make tab border the identity color */
86 | .tabbrowser-tab[usercontextid] > .tab-stack > .tab-background {
87 | outline: var(--uc-tab-outline-width, 1px) solid
88 | color-mix(in srgb, var(--identity-tab-color) 50%, transparent) !important;
89 | background-color: var(--lwt-selected-tab-background-color) !important;
90 | }
91 |
92 | .tabbrowser-tab[usercontextid]
93 | > .tab-stack
94 | > .tab-background:is([selected], [multiselected]) {
95 | outline: var(--uc-tab-outline-width, 1px) solid var(--identity-tab-color) !important;
96 | background-image: linear-gradient(
97 | var(--lwt-selected-tab-background-color, transparent),
98 | var(--lwt-selected-tab-background-color, transparent)
99 | ),
100 | linear-gradient(var(--toolbar-bgcolor), var(--toolbar-bgcolor)),
101 | var(--lwt-header-image, none) !important;
102 | }
103 |
104 | .tabbrowser-tab[usercontextid]:hover
105 | > .tab-stack
106 | > .tab-background:not([selected="true"], [multiselected]) {
107 | background-color: color-mix(
108 | in srgb,
109 | var(--identity-tab-color) 18%,
110 | transparent
111 | ) !important;
112 | }
113 |
114 | /* no top line */
115 | .tabbrowser-tab[usercontextid]
116 | > .tab-stack
117 | > .tab-background
118 | > .tab-context-line {
119 | display: none;
120 | }
121 |
--------------------------------------------------------------------------------
/chrome/components/titlebar.css:
--------------------------------------------------------------------------------
1 | /***** TITLE BAR - WINDOWS *****/
2 |
--------------------------------------------------------------------------------
/chrome/img/back.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/img/bookmarks.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/img/downloads.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/img/forward.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/img/history.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/img/menu.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/img/overflow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/img/reload.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/js/appMenuAboutConfigButton.uc.js:
--------------------------------------------------------------------------------
1 | // ==UserScript==
2 | // @name App Menu about:config Button
3 | // @version 1.2.3
4 | // @author aminomancer
5 | // @homepage https://github.com/aminomancer/uc.css.js
6 | // @description Adds an about:config shortcut button to the main app menu panel, under the
7 | // built-in Settings button. It can open the built-in about:config page, or it can open the
8 | // old-school about:config page with earthlng's aboutconfig module. (https://github.com/earthlng/aboutconfig)
9 | // To use that with fx-autoconfig, download ONLY the profile/chrome/utils/aboutconfig folder and
10 | // place it inside your profile/chrome/resources folder. Then open config.xhtml and find & replace
11 | // "userchromejs" with "userchrome" and save. Now "chrome://userchrome/content/aboutconfig/config.xhtml"
12 | // should be the correct URL. By default the script will open to that link, so if you don't have
13 | // that module installed the button will open to a blank page. If you can't get the module to work
14 | // or if you just prefer Firefox's built-in page, you can change the constant on line 10 below to
15 | // "about:config" and it'll open to the same page you'd get if you typed about:config in the address
16 | // bar. (the URL must be in quotes) That said, typing about:config is already easy enough. The
17 | // reason I made this script was to make a clean shortcut to reach the old-school page, and in a
18 | // more central location than a bookmark. FYI I added an icon for this button (and for all the other
19 | // main app menu buttons too) in uc-app-menu.css
20 | // @license This Source Code Form is subject to the terms of the Creative Commons Attribution-NonCommercial-ShareAlike International License, v. 4.0. If a copy of the CC BY-NC-SA 4.0 was not distributed with this file, You can obtain one at http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
21 | // ==/UserScript==
22 |
23 | (function () {
24 | // user configuration
25 | const config = {
26 | urlOverride: ""
27 | /* the script tries to automatically find earthlng's aboutconfig URL, and if
28 | it can't be found, uses the built-in about:config URL instead. if it's
29 | unable to find the URL for your particular setup, or if you just want to
30 | use the vanilla about:config page, replace this empty string with your
31 | preferred URL, in quotes. if you want to use my about:cfg script that
32 | registers earthlng's aboutconfig page to about:cfg, and you want the
33 | about:config button to take you to about:cfg, then leave this empty. it
34 | will automatically use about:cfg if the script exists. if about:cfg
35 | doesn't work for you then change the pathOverride in *that* script
36 | instead of setting urlOverride in this one. if you changed the address
37 | (the "cfg" string) in that script, you'll need to use urlOverride here
38 | if you want the button to direct to earthlng's aboutconfig page. so if
39 | for example you changed the address to "config2" then change urlOverride
40 | above to "about:config2" */
41 | };
42 |
43 | function findAboutConfig() {
44 | if (config.urlOverride) return config.urlOverride;
45 |
46 | if (
47 | Components.manager
48 | .QueryInterface(Ci.nsIComponentRegistrar)
49 | .isContractIDRegistered(
50 | "@mozilla.org/network/protocol/about;1?what=cfg"
51 | )
52 | ) {
53 | return "about:cfg";
54 | }
55 |
56 | let dir = Services.dirsvc.get("UChrm", Ci.nsIFile);
57 | let appendFn = (nm) => dir.append(nm);
58 |
59 | // fx-autoconfig
60 | ["resources", "aboutconfig", "config.xhtml"].forEach(appendFn);
61 | if (dir.exists()) {
62 | return "chrome://userchrome/content/aboutconfig/config.xhtml";
63 | }
64 |
65 | // earthlng's loader
66 | dir = Services.dirsvc.get("UChrm", Ci.nsIFile);
67 | ["utils", "aboutconfig", "config.xhtml"].forEach(appendFn);
68 | if (dir.exists()) {
69 | return "chrome://userchromejs/content/aboutconfig/config.xhtml";
70 | }
71 |
72 | // xiaoxiaoflood's loader
73 | dir = Services.dirsvc.get("UChrm", Ci.nsIFile);
74 | ["utils", "aboutconfig", "aboutconfig.xhtml"].forEach(appendFn);
75 | if (dir.exists()) {
76 | return "chrome://userchromejs/content/aboutconfig/aboutconfig.xhtml";
77 | }
78 |
79 | // no about:config replacement found
80 | return "about:config";
81 | }
82 |
83 | async function createButton() {
84 | // get fluent file for AboutConfig page
85 | const configStrings = await new Localization(
86 | ["toolkit/about/config.ftl"],
87 | true
88 | );
89 | // localize the "Advanced Preferences" string
90 | const advancedPrefsLabel = await configStrings.formatValue([
91 | "about-config-page-title"
92 | ]);
93 | const { mainView } = PanelUI;
94 | const doc = mainView.ownerDocument;
95 | const settingsButton =
96 | doc.getElementById("appMenu-settings-button") ??
97 | doc.getElementById("appMenu-preferences-button");
98 | const prefsButton = doc.createXULElement("toolbarbutton");
99 |
100 | prefsButton.preferredURL = findAboutConfig();
101 | for (const [key, val] of Object.entries({
102 | id: "appMenu-advanced-settings-button",
103 | class: "subviewbutton",
104 | label: advancedPrefsLabel,
105 | oncommand: `openTrustedLinkIn(this.preferredURL, gBrowser.currentURI.spec === AboutNewTab.newTabURL || gBrowser.currentURI.spec === HomePage.get(window) ? "current" : "tab")`
106 | })) {
107 | prefsButton.setAttribute(key, val);
108 | }
109 | // place after the built-in "Settings" button
110 | settingsButton.after(prefsButton);
111 | }
112 |
113 | function init() {
114 | PanelMultiView.getViewNode(
115 | document,
116 | "appMenu-multiView"
117 | ).addEventListener("ViewShowing", createButton, { once: true });
118 | }
119 |
120 | if (gBrowserInit.delayedStartupFinished) {
121 | init();
122 | } else {
123 | let delayedListener = (subject, topic) => {
124 | if (
125 | topic == "browser-delayed-startup-finished" &&
126 | subject == window
127 | ) {
128 | Services.obs.removeObserver(delayedListener, topic);
129 | init();
130 | }
131 | };
132 | Services.obs.addObserver(
133 | delayedListener,
134 | "browser-delayed-startup-finished"
135 | );
136 | }
137 | })();
138 |
--------------------------------------------------------------------------------
/chrome/js/appMenuMods.uc.js:
--------------------------------------------------------------------------------
1 | // ==UserScript==
2 | // @name App Menu Mods
3 | // @version 1.4.2
4 | // @author aminomancer
5 | // @homepage https://github.com/aminomancer/uc.css.js
6 | // @description Makes some minor modifications to the app menu (the popup
7 | // opened by clicking the hamburger button on the far right of the navbar). It
8 | // adds a restart button to the app menu and it adds a separator under the
9 | // "Manage Account" button in the profile/account panel. I'll continue adding
10 | // more mods to this script as I think of them.
11 | // @license This Source Code Form is subject to the terms of the Creative Commons Attribution-NonCommercial-ShareAlike International License, v. 4.0. If a copy of the CC BY-NC-SA 4.0 was not distributed with this file, You can obtain one at http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
12 | // ==/UserScript==
13 |
14 | (function () {
15 | class AppMenuMods {
16 | constructor() {
17 | PanelUI._initialized ||
18 | PanelUI.init(shouldSuppressPopupNotifications);
19 | PanelUI.mainView.addEventListener("ViewShowing", this, {
20 | once: true
21 | });
22 | this.addSeparatorToAccountPanel();
23 | this.fixSyncSubviewButtonAlignment();
24 | }
25 | static create(aDoc, tag, props, isHTML = false) {
26 | let el = isHTML
27 | ? aDoc.createElement(tag)
28 | : aDoc.createXULElement(tag);
29 | for (let prop in props) {
30 | el.setAttribute(prop, props[prop]);
31 | }
32 | return el;
33 | }
34 | static sleep(ms) {
35 | return new Promise((resolve) => setTimeout(resolve, ms));
36 | }
37 | async generateStrings() {
38 | if (!this.strings) {
39 | this.strings = await new Localization(
40 | ["toolkit/about/aboutSupport.ftl"],
41 | true
42 | );
43 | }
44 | await AppMenuMods.sleep(1);
45 | return this.strings;
46 | }
47 | get fxaPanelView() {
48 | return PanelMultiView.getViewNode(document, "PanelUI-fxa");
49 | }
50 | async handleEvent(_e) {
51 | let strings = await this.generateStrings();
52 | this.addRestartButton(strings);
53 | }
54 | addSeparatorToAccountPanel() {
55 | this.manageAccountSeparator =
56 | this.fxaPanelView.ownerDocument.createXULElement(
57 | "toolbarseparator"
58 | );
59 | this.fxaPanelView
60 | .querySelector("#fxa-manage-account-button")
61 | .after(this.manageAccountSeparator);
62 | }
63 | async addRestartButton(strings) {
64 | let restartButton = AppMenuMods.create(document, "toolbarbutton", {
65 | id: "appMenu-restart-button2",
66 | class: "subviewbutton",
67 | label: await strings.formatValue(["restart-button-label"]),
68 | oncommand: `if (event.shiftKey || (AppConstants.platform == "macosx" ? event.metaKey : event.ctrlKey)) Services.appinfo.invalidateCachesOnRestart(); setTimeout(() => Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit), 300); PanelMultiView.forNode(this.closest("panelmultiview")).hidePopup(); event.preventDefault();`,
69 | onclick: `if (event.button === 0) return; Services.appinfo.invalidateCachesOnRestart(); setTimeout(() => Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit), 300); PanelMultiView.forNode(this.closest("panelmultiview")).hidePopup(); event.preventDefault();`
70 | });
71 | let exitButton = document.getElementById("appMenu-quit-button2");
72 | if (exitButton) {
73 | exitButton.before(restartButton);
74 | } else {
75 | PanelUI.mainView
76 | .querySelector(".panel-subview-body")
77 | .appendChild(restartButton);
78 | }
79 | }
80 | fixSyncSubviewButtonAlignment() {
81 | eval(
82 | `gSync.populateSendTabToDevicesView = function ` +
83 | gSync.populateSendTabToDevicesView
84 | .toSource()
85 | .replace(/^populateSendTabToDevicesView/, ``)
86 | .replace(
87 | /item.setAttribute\(\"align\", \"start\"\);/,
88 | ``
89 | )
90 | );
91 | }
92 | }
93 |
94 | if (gBrowserInit.delayedStartupFinished) {
95 | new AppMenuMods();
96 | } else {
97 | let delayedListener = (subject, topic) => {
98 | if (
99 | topic == "browser-delayed-startup-finished" &&
100 | subject == window
101 | ) {
102 | Services.obs.removeObserver(delayedListener, topic);
103 | new AppMenuMods();
104 | }
105 | };
106 | Services.obs.addObserver(
107 | delayedListener,
108 | "browser-delayed-startup-finished"
109 | );
110 | }
111 | })();
112 |
--------------------------------------------------------------------------------
/chrome/js/clearDownloadsButton.uc.js:
--------------------------------------------------------------------------------
1 | // ==UserScript==
2 | // @name Clear Downloads Panel Button
3 | // @version 1.4.1
4 | // @author aminomancer
5 | // @homepage https://github.com/aminomancer/uc.css.js
6 | // @description Place a "Clear Downloads" button in the downloads panel,
7 | // right next to the "Show all downloads" button.
8 | // @license This Source Code Form is subject to the terms of the Creative Commons Attribution-NonCommercial-ShareAlike International License, v. 4.0. If a copy of the CC BY-NC-SA 4.0 was not distributed with this file, You can obtain one at http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
9 | // ==/UserScript==
10 |
11 | class ClearDLPanel {
12 | config = {
13 | // the "Show all downloads" button is in sentence case, but the
14 | // localized "Clear Downloads" button string is from a context menu, so
15 | // it's in "Title Case". if you want both in sentence case use this.
16 | // I've tried to account for other alphabets or RTL languages but user
17 | // will be the judge
18 | "Label in sentence case": true
19 | };
20 | constructor() {
21 | this.makeButton();
22 | this.setCountHandler();
23 | Services.obs.addObserver(this, "downloads-panel-count-changed");
24 | }
25 | async genStrings() {
26 | this.strings = await new Localization(["browser/downloads.ftl"], true);
27 | const messages = await this.strings.formatMessages([
28 | "downloads-cmd-clear-downloads"
29 | ]);
30 | this.label = messages[0].attributes[0].value;
31 | this.accessKey = messages[0].attributes[1].value;
32 | return [this.label, this.accessKey];
33 | }
34 | async makeButton() {
35 | this.clearPanelButton = document.createXULElement("button");
36 | let strings = await this.genStrings();
37 | let labelString = this.config["Label in sentence case"]
38 | ? this.sentenceCase(strings[0])
39 | : strings[0];
40 | for (const [key, val] of Object.entries({
41 | id: "clearDownloadsPanel",
42 | class:
43 | DownloadsView.downloadsHistory.className ||
44 | "downloadsPanelFooterButton subviewbutton panel-subview-footer-button toolbarbutton-1",
45 | oncommand: `goDoCommand('downloadsCmd_clearList'); DownloadsPanel.hidePanel();`,
46 | label: labelString,
47 | accesskey: strings[1],
48 | flex: "1",
49 | pack: "start"
50 | })) {
51 | this.clearPanelButton.setAttribute(key, val);
52 | }
53 | DownloadsView.downloadsHistory.after(this.clearPanelButton);
54 | this.clearPanelButton.hidden =
55 | !DownloadsView._visibleViewItems?.size > 0;
56 | this.clearPanelButton
57 | ?.closest("#downloadsFooter")
58 | .prepend(document.createXULElement("toolbarseparator"));
59 | this.clearPanelButton?.parentElement.setAttribute("uc-hbox", "true");
60 | }
61 | sentenceCase(str) {
62 | return str
63 | .toLocaleLowerCase()
64 | .replace(RTL_UI ? /.$/i : /^./i, function (letter) {
65 | return letter.toLocaleUpperCase();
66 | })
67 | .trim();
68 | }
69 | setCountHandler() {
70 | eval(
71 | `DownloadsView._itemCountChanged = function ${DownloadsView._itemCountChanged
72 | .toSource()
73 | .replace(
74 | /hiddenCount \> 0\;\n/,
75 | `hiddenCount > 0;\n Services.obs.notifyObservers(null, "downloads-panel-count-changed", String(count));\n`
76 | )}`
77 | );
78 | }
79 | observe(_sub, _top, data) {
80 | this.clearPanelButton.hidden = parseInt(data) < 1;
81 | }
82 | }
83 |
84 | if (gBrowserInit.delayedStartupFinished) {
85 | new ClearDLPanel();
86 | } else {
87 | let delayedListener = (subject, topic) => {
88 | if (topic == "browser-delayed-startup-finished" && subject == window) {
89 | Services.obs.removeObserver(delayedListener, topic);
90 | new ClearDLPanel();
91 | }
92 | };
93 | Services.obs.addObserver(
94 | delayedListener,
95 | "browser-delayed-startup-finished"
96 | );
97 | }
98 |
--------------------------------------------------------------------------------
/chrome/js/floatingSidebarResizer.uc.js:
--------------------------------------------------------------------------------
1 | // ==UserScript==
2 | // @name Floating Sidebar Resizer
3 | // @version 1.3.1
4 | // @author aminomancer
5 | // @homepage https://github.com/aminomancer
6 | // @description A floating sidebar that you can still resize. The default
7 | // sidebar in firefox is nice, it can move from the left side to the right side
8 | // and you can resize it. But it squeezes the browser content area out of the
9 | // way. That might be desirable for some people. That way the entire contents of
10 | // the page are still visible when the sidebar is open. That works well with
11 | // responsive page layouts but doesn't work well with elements that try to
12 | // preserve some explicit aspect ratio. It also doesn't look very aesthetic when
13 | // you open the sidebar and the entire page makes this jarring transformation as
14 | // everything shifts left or right to make way for the sidebar. So say your
15 | // browser window is sized precisely to 16:9 dimensions. Maybe you have ocd like
16 | // me and don't want to see any letterbox when you watch netflix. By default
17 | // when you open the sidebar, it pushes the whole content area to the side,
18 | // which changes the content area width:height ratio. So the player setup needs
19 | // to resize the video element, resulting in a letterbox effect. It's easy
20 | // enough to make the sidebar "float" over the content though. You can do it
21 | // with pure css. The major downside is that you lose the ability to resize the
22 | // sidebar. You'd have to set the width manually. That's because the native
23 | // implementation of resizing relies on the old-school proprietary -moz-box
24 | // spec. The space within #browser is finite and the -moz-boxes within fill that
25 | // space based on some css rules. The resizing is actually handled by the
26 | // separator, which is a totally independent element. So within #browser you
27 | // have: content | separator | sidebar. And moving the separator defines how big
28 | // the sidebar and content area are, but this only works *because* they can't
29 | // occupy the same space. To make the sidebar float over the content area you
30 | // need to change its display and position rules, which means the separator no
31 | // longer packs right next to the sidebar. It's sort of like plucking the
32 | // sidebar out of the flexbox. The separator moves all the way to the end of the
33 | // screen and the content area expands to fill that space. So the separator
34 | // becomes useless and we lose the ability to resize the sidebar. So the main
35 | // thing this does is add a resizer to the sidebar. It doesn't make the sidebar
36 | // float by itself. That's what the css files in this repo are for.
37 | // @license This Source Code Form is subject to the terms of the Creative Commons Attribution-NonCommercial-ShareAlike International License, v. 4.0. If a copy of the CC BY-NC-SA 4.0 was not distributed with this file, You can obtain one at http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
38 | // ==/UserScript==
39 |
40 | (() => {
41 | function startup() {
42 | // outer box
43 | let box = SidebarUI._box;
44 | let prefsvc = Services.prefs;
45 | // boolean pref: whether sidebar is on the left or right side of the browser content area.
46 | let anchor = "sidebar.position_start";
47 | // string pref: we set this so we can remember user's sidebar width when
48 | // rebooting or opening a new window.
49 | let widthPref = "userChrome.floating-sidebar.width";
50 | // invisible little bar by which to drag the sidebar to resize it
51 | let resizer = document.createElement("div");
52 | let frame = false;
53 | let startWidth;
54 | let startX;
55 |
56 | function initDrag(e) {
57 | // this is not directly visible since the element has no background or
58 | // content. this just means that while you're clicking+dragging the
59 | // resizer, its width expands to double the size of the sidebar.
60 | resizer.style.width = "200%";
61 | // we want the resizer to expand massively in both directions.
62 | resizer.style.marginInline = "-100%";
63 | startX = e.screenX;
64 | startWidth = parseInt(
65 | document.defaultView.getComputedStyle(box).width,
66 | 10
67 | );
68 | document.documentElement.addEventListener(
69 | "mousemove",
70 | doDrag,
71 | true
72 | );
73 | document.documentElement.addEventListener("mouseup", stopDrag);
74 | }
75 |
76 | function doDrag(e) {
77 | // throttling, since mousemove events can fire way faster than even
78 | // a 144Hz monitor can render frames.
79 | if (frame) return;
80 | frame = true;
81 | requestAnimationFrame(() => {
82 | if (SidebarUI._positionStart) {
83 | box.style.width = startWidth + e.screenX - startX + "px";
84 | } else {
85 | box.style.width = startWidth - e.screenX + startX + "px";
86 | }
87 | frame = false;
88 | });
89 | }
90 |
91 | function stopDrag(_e) {
92 | // this is the neutral/idle size. when you're not clicking/dragging,
93 | // it's just a 4px vertical "border"
94 | resizer.style.width = "4px";
95 | // remove the -100% margin-inline rule we set while dragging.
96 | resizer.style.removeProperty("margin-inline");
97 | document.documentElement.removeEventListener(
98 | "mousemove",
99 | doDrag,
100 | true
101 | );
102 | document.documentElement.removeEventListener("mouseup", stopDrag);
103 | // now that we've stopped moving the mouse, permanently record the
104 | // sidebar width so we can restore from it later.
105 | prefsvc.setStringPref(widthPref, box.style.width);
106 | }
107 |
108 | function alignObserve(_sub, _top, pref) {
109 | // we want the resizer to go on the left side of the sidebar when
110 | // the sidebar is on the right side of the window, and vice versa.
111 | if (prefsvc.getBoolPref(pref)) resizer.style.right = "0";
112 | else resizer.style.removeProperty("right");
113 | }
114 |
115 | function exitSideBar(e) {
116 | if (e.code === "Escape") {
117 | if (
118 | e.repeat ||
119 | e.shiftKey ||
120 | e.altKey ||
121 | e.ctrlKey ||
122 | this.hidden
123 | ) {
124 | return;
125 | }
126 | SidebarUI.toggle();
127 | e.preventDefault();
128 | }
129 | }
130 |
131 | function domSetup() {
132 | resizer.style.cssText =
133 | "display: inline-block; height: 100%; position: absolute; width: 4px; cursor: ew-resize;";
134 | box.appendChild(resizer);
135 | box.style.minWidth = "18em";
136 | box.style.maxWidth = "100%";
137 | try {
138 | box.style.width = prefsvc.getStringPref(widthPref);
139 | } catch (e) {
140 | box.style.width = "18em";
141 | }
142 | if (prefsvc.getBoolPref(anchor)) resizer.style.right = "0";
143 | }
144 |
145 | function attachListeners() {
146 | resizer.addEventListener("mousedown", initDrag);
147 | window.addEventListener("unload", uninit);
148 | prefsvc.addObserver(anchor, alignObserve);
149 | box.addEventListener("keypress", exitSideBar, true);
150 | }
151 |
152 | function uninit() {
153 | window.removeEventListener("unload", uninit);
154 | prefsvc.removeObserver(anchor, alignObserve);
155 | }
156 |
157 | // remove old preference
158 | prefsvc.clearUserPref("userChrome.floating-sidebar.hotkey");
159 | domSetup();
160 | attachListeners();
161 | }
162 |
163 | // wait until components are initialized so we can access SidebarUI
164 | if (gBrowserInit.delayedStartupFinished) {
165 | startup();
166 | } else {
167 | let delayedListener = (subject, topic) => {
168 | if (
169 | topic == "browser-delayed-startup-finished" &&
170 | subject == window
171 | ) {
172 | Services.obs.removeObserver(delayedListener, topic);
173 | startup();
174 | }
175 | };
176 | Services.obs.addObserver(
177 | delayedListener,
178 | "browser-delayed-startup-finished"
179 | );
180 | }
181 | })();
182 |
--------------------------------------------------------------------------------
/chrome/js/hideTrackingProtectionIconOnCustomNewTabPage.uc.js:
--------------------------------------------------------------------------------
1 | // ==UserScript==
2 | // @name Hide Tracking Protection Icon on Custom New Tab Page
3 | // @version 1.3.3
4 | // @author aminomancer
5 | // @homepage https://github.com/aminomancer
6 | // @description By default, Firefox hides the tracking protection while 1)
7 | // the current tab is open to the default new tab page; or 2) the user is typing
8 | // into the url bar. Hiding the icon while the user is typing is unnecessary,
9 | // since although "pageproxystate" has changed, the content principal is still
10 | // the same and clicking the tracking protection icon to open the popup still
11 | // works. Opening the popup while pageproxystate is invalid still loads the
12 | // tracking details and options for the current content URI. But hiding the icon
13 | // on the new tab page is necessary, because the tracking protection icon is
14 | // hidden on about:blank. If you use an extension to set a custom new tab page,
15 | // you will see the tracking protection icon briefly disappear when opening a
16 | // new tab, before reappearing as the custom new tab page loads. That is because
17 | // about:blank loads before the custom new tab page loads. So the icon is hidden
18 | // and unhidden in the span of a hundred milliseconds or so. This looks very
19 | // ugly, so my stylesheet has always prevented the tracking protection icon from
20 | // being hidden on any page, including about:blank. That way at least it doesn't
21 | // disappear. But this isn't a great solution, because there are a number of
22 | // pages for which the tracking protection icon does nothing. The protection
23 | // handler can't handle internal pages, for example. Previously I just disabled
24 | // pointer events on the icon when it was supposed to be hidden. But I think
25 | // this script is a better solution. If this script is not installed, my theme
26 | // will default to those older methods I just mentioned. But if the script is
27 | // installed, it will restore the built-in behavior of hiding the tracking
28 | // protection icon on internal pages, only it will also hide the icon on the
29 | // user's custom new tab page. The icon will still be visible if you're on a
30 | // valid webpage, (anything but about, chrome, and resource URIs) even if you
31 | // begin typing in the urlbar.
32 | // @license This Source Code Form is subject to the terms of the Creative Commons Attribution-NonCommercial-ShareAlike International License, v. 4.0. If a copy of the CC BY-NC-SA 4.0 was not distributed with this file, You can obtain one at http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
33 | // ==/UserScript==
34 |
35 | (function () {
36 | class HideOnNTP {
37 | // duskFox has a preference,
38 | // userChrome.urlbar.hide-bookmarks-button-on-system-pages
39 | // which hides the urlbar's star button in certain conditions when the
40 | // tracking protection icon is hidden. that means on the new tab page or on
41 | // about:blank, there is no star button taking up space in the urlbar, since
42 | // these pages are unlikely to ever be bookmarked. however, ctrl + D can
43 | // still open the edit bookmark panel. when this happens, it can't be
44 | // anchored to the star button since the star button is hidden. so it is
45 | // anchored to the identity icon instead. this looks kinda silly though
46 | // because it's not meant to be anchored so far to the left of the star
47 | // button. so instead if this pref is enabled, we'll try to anchor it to the
48 | // bookmarks menu button or the library button, if they exist on the user's
49 | // toolbar.
50 | _getAnchor(panel) {
51 | if (this.hideBookmarks) {
52 | for (let id of [
53 | "star-button-box",
54 | "bookmarks-menu-button",
55 | "libary-button"
56 | ]) {
57 | let node = document.getElementById(id);
58 | if (node && !node.hidden) {
59 | let bounds =
60 | window.windowUtils.getBoundsWithoutFlushing(node);
61 | if (bounds.height > 0 && bounds.width > 0) {
62 | // add an attribute to the panel if it's going to be anchored to a
63 | // toolbar button. duskFox CSS uses this to line it up better with
64 | // a toolbar button. normally a panel is positioned -7px
65 | // vertically from its anchor. but a panel anchored to a toolbar
66 | // button is anchored -12px from its anchor. the reasons for this
67 | // are just related to how the buttons are flexed in their container.
68 | node.classList.contains("toolbarbutton-1")
69 | ? panel.setAttribute("on-toolbar-button", true)
70 | : panel.removeAttribute("on-toolbar-button");
71 | return node;
72 | }
73 | }
74 | }
75 | }
76 | panel.removeAttribute("on-toolbar-button");
77 | return BookmarkingUI.anchor;
78 | }
79 | constructor() {
80 | const lazy = {};
81 | ChromeUtils.defineModuleGetter(
82 | lazy,
83 | "ContentBlockingAllowList",
84 | "resource://gre/modules/ContentBlockingAllowList.jsm"
85 | );
86 | XPCOMUtils.defineLazyPreferenceGetter(
87 | this,
88 | "hideBookmarks",
89 | "userChrome.urlbar.hide-bookmarks-button-on-system-pages",
90 | false
91 | );
92 | eval(
93 | `StarUI.showEditBookmarkPopup = async function ` +
94 | StarUI.showEditBookmarkPopup
95 | .toSource()
96 | .replace(/^\(/, "")
97 | .replace(/\)$/, "")
98 | .replace(/async showEditBookmarkPopup/, "")
99 | .replace(/async function\s*/, "")
100 | .replace(
101 | /BookmarkingUI\.anchor/,
102 | `hideOnNTP?._getAnchor(this.panel) || BookmarkingUI.anchor`
103 | )
104 | );
105 | // the main part of this script. hide the tracking protection icon on new tab page.
106 | gProtectionsHandler.onLocationChange = function onLocationChange() {
107 | let currentURL = gBrowser.currentURI.spec;
108 | let isInitial = isInitialPage(gBrowser.currentURI);
109 | if (this._showToastAfterRefresh) {
110 | this._showToastAfterRefresh = false;
111 | if (
112 | this._previousURI == currentURL &&
113 | this._previousOuterWindowID ==
114 | gBrowser.selectedBrowser.outerWindowID
115 | ) {
116 | this.showProtectionsPopup({ toast: true });
117 | }
118 | }
119 | this.hadShieldState = false;
120 | if (currentURL.startsWith("view-source:")) {
121 | this._trackingProtectionIconContainer.setAttribute(
122 | "view-source",
123 | true
124 | );
125 | } else {
126 | this._trackingProtectionIconContainer.removeAttribute(
127 | "view-source"
128 | );
129 | }
130 | // make the identity box unfocusable on new tab page
131 | if (gIdentityHandler._identityIconBox) {
132 | gIdentityHandler._identityIconBox.disabled = isInitial;
133 | }
134 | // hide the TP icon on new tab page
135 | if (
136 | !lazy.ContentBlockingAllowList.canHandle(
137 | gBrowser.selectedBrowser
138 | ) ||
139 | isInitial
140 | ) {
141 | this._trackingProtectionIconContainer.hidden = true;
142 | return;
143 | }
144 | this._trackingProtectionIconContainer.hidden = false;
145 | this.hasException = lazy.ContentBlockingAllowList.includes(
146 | gBrowser.selectedBrowser
147 | );
148 | if (this._protectionsPopup) {
149 | this._protectionsPopup.toggleAttribute(
150 | "hasException",
151 | this.hasException
152 | );
153 | }
154 | this.iconBox.toggleAttribute("hasException", this.hasException);
155 | this.fingerprintersHistogramAdd("pageLoad");
156 | this.cryptominersHistogramAdd("pageLoad");
157 | this.shieldHistogramAdd(0);
158 | };
159 | }
160 | }
161 | function init() {
162 | window.hideOnNTP = new HideOnNTP();
163 | }
164 | document.documentElement.setAttribute("hide-tp-icon-on-ntp", true);
165 | if (gBrowserInit.delayedStartupFinished) {
166 | init();
167 | } else {
168 | let delayedListener = (subject, topic) => {
169 | if (
170 | topic == "browser-delayed-startup-finished" &&
171 | subject == window
172 | ) {
173 | Services.obs.removeObserver(delayedListener, topic);
174 | init();
175 | }
176 | };
177 | Services.obs.addObserver(
178 | delayedListener,
179 | "browser-delayed-startup-finished"
180 | );
181 | }
182 | })();
183 |
--------------------------------------------------------------------------------
/chrome/palette/catppuccin-frappe.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --ctp-rosewater: #f2d5cf;
3 | --ctp-flamingo: #eebebe;
4 | --ctp-pink: #f4b8e4;
5 | --ctp-mauve: #ca9ee6;
6 | --ctp-red: #e78284;
7 | --ctp-maroon: #ea999c;
8 | --ctp-peach: #ef9f76;
9 | --ctp-yellow: #e5c890;
10 | --ctp-green: #a6d189;
11 | --ctp-teal: #81c8be;
12 | --ctp-sky: #99d1db;
13 | --ctp-sapphire: #85c1dc;
14 | --ctp-blue: #8caaee;
15 | --ctp-lavender: #babbf1;
16 | --ctp-text: #c6d0f5;
17 | --ctp-subtext1: #b5bfe2;
18 | --ctp-subtext0: #a5adce;
19 | --ctp-overlay2: #949cbb;
20 | --ctp-overlay1: #838ba7;
21 | --ctp-overlay0: #737994;
22 | --ctp-surface2: #626880;
23 | --ctp-surface1: #51576d;
24 | --ctp-surface0: #414559;
25 | --ctp-base: #303446;
26 | --ctp-mantle: #292c3c;
27 | --ctp-crust: #232634;
28 | }
29 |
--------------------------------------------------------------------------------
/chrome/palette/catppuccin-latte.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --ctp-rosewater: #dc8a78;
3 | --ctp-flamingo: #dd7878;
4 | --ctp-pink: #ea76cb;
5 | --ctp-mauve: #8839ef;
6 | --ctp-red: #d20f39;
7 | --ctp-maroon: #e64553;
8 | --ctp-peach: #fe640b;
9 | --ctp-yellow: #df8e1d;
10 | --ctp-green: #40a02b;
11 | --ctp-teal: #179299;
12 | --ctp-sky: #04a5e5;
13 | --ctp-sapphire: #209fb5;
14 | --ctp-blue: #1e66f5;
15 | --ctp-lavender: #7287fd;
16 | --ctp-text: #4c4f69;
17 | --ctp-subtext1: #5c5f77;
18 | --ctp-subtext0: #6c6f85;
19 | --ctp-overlay2: #7c7f93;
20 | --ctp-overlay1: #8c8fa1;
21 | --ctp-overlay0: #9ca0b0;
22 | --ctp-surface2: #acb0be;
23 | --ctp-surface1: #bcc0cc;
24 | --ctp-surface0: #ccd0da;
25 | --ctp-crust: #dce0e8;
26 | --ctp-mantle: #e6e9ef;
27 | --ctp-base: #eff1f5;
28 | }
29 |
--------------------------------------------------------------------------------
/chrome/palette/catppuccin-macchiato.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --ctp-rosewater: #f4dbd6;
3 | --ctp-flamingo: #f0c6c6;
4 | --ctp-pink: #f5bde6;
5 | --ctp-mauve: #c6a0f6;
6 | --ctp-red: #ed8796;
7 | --ctp-maroon: #ee99a0;
8 | --ctp-peach: #f5a97f;
9 | --ctp-yellow: #eed49f;
10 | --ctp-green: #a6da95;
11 | --ctp-teal: #8bd5ca;
12 | --ctp-sky: #91d7e3;
13 | --ctp-sapphire: #7dc4e4;
14 | --ctp-blue: #8aadf4;
15 | --ctp-lavender: #b7bdf8;
16 | --ctp-text: #cad3f5;
17 | --ctp-subtext1: #b8c0e0;
18 | --ctp-subtext0: #a5adcb;
19 | --ctp-overlay2: #939ab7;
20 | --ctp-overlay1: #8087a2;
21 | --ctp-overlay0: #6e738d;
22 | --ctp-surface2: #5b6078;
23 | --ctp-surface1: #494d64;
24 | --ctp-surface0: #363a4f;
25 | --ctp-base: #24273a;
26 | --ctp-mantle: #1e2030;
27 | --ctp-crust: #181926;
28 | }
29 |
--------------------------------------------------------------------------------
/chrome/palette/catppuccin-mocha.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --ctp-rosewater: #f5e0dc;
3 | --ctp-flamingo: #f2cdcd;
4 | --ctp-pink: #f5c2e7;
5 | --ctp-mauve: #cba6f7;
6 | --ctp-red: #f38ba8;
7 | --ctp-maroon: #eba0ac;
8 | --ctp-peach: #fab387;
9 | --ctp-yellow: #f9e2af;
10 | --ctp-green: #a6e3a1;
11 | --ctp-teal: #94e2d5;
12 | --ctp-sky: #89dceb;
13 | --ctp-sapphire: #74c7ec;
14 | --ctp-blue: #89b4fa;
15 | --ctp-lavender: #b4befe;
16 | --ctp-text: #cdd6f4;
17 | --ctp-subtext1: #bac2de;
18 | --ctp-subtext0: #a6adc8;
19 | --ctp-overlay2: #9399b2;
20 | --ctp-overlay1: #7f849c;
21 | --ctp-overlay0: #6c7086;
22 | --ctp-surface2: #585b70;
23 | --ctp-surface1: #45475a;
24 | --ctp-surface0: #313244;
25 | --ctp-base: #1e1e2e;
26 | --ctp-mantle: #181825;
27 | --ctp-crust: #11111b;
28 | }
29 |
--------------------------------------------------------------------------------
/chrome/palette/catppuccin.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --ctp-latte-rosewater: #de9584;
3 | --ctp-latte-rosewater-rgb: rgb(222, 149, 132);
4 | --ctp-latte-rosewater-hsl: hsl(11, 58%, 69%);
5 | --ctp-frappe-rosewater: #f2d5cf;
6 | --ctp-frappe-rosewater-rgb: rgb(242, 213, 207);
7 | --ctp-frappe-rosewater-hsl: hsl(10, 57%, 88%);
8 | --ctp-macchiato-rosewater: #f4dbd6;
9 | --ctp-macchiato-rosewater-rgb: rgb(244, 219, 214);
10 | --ctp-macchiato-rosewater-hsl: hsl(10, 58%, 90%);
11 | --ctp-mocha-rosewater: #f5e0dc;
12 | --ctp-mocha-rosewater-rgb: rgb(245, 224, 220);
13 | --ctp-mocha-rosewater-hsl: hsl(10, 56%, 91%);
14 | --ctp-latte-flamingo: #dd7878;
15 | --ctp-latte-flamingo-rgb: rgb(221, 120, 120);
16 | --ctp-latte-flamingo-hsl: hsl(0, 60%, 67%);
17 | --ctp-frappe-flamingo: #eebebe;
18 | --ctp-frappe-flamingo-rgb: rgb(238, 190, 190);
19 | --ctp-frappe-flamingo-hsl: hsl(0, 59%, 84%);
20 | --ctp-macchiato-flamingo: #f0c6c6;
21 | --ctp-macchiato-flamingo-rgb: rgb(240, 198, 198);
22 | --ctp-macchiato-flamingo-hsl: hsl(0, 58%, 86%);
23 | --ctp-mocha-flamingo: #f2cdcd;
24 | --ctp-mocha-flamingo-rgb: rgb(242, 205, 205);
25 | --ctp-mocha-flamingo-hsl: hsl(0, 59%, 88%);
26 | --ctp-latte-pink: #ec83d0;
27 | --ctp-latte-pink-rgb: rgb(236, 131, 208);
28 | --ctp-latte-pink-hsl: hsl(316, 73%, 72%);
29 | --ctp-frappe-pink: #f4b8e4;
30 | --ctp-frappe-pink-rgb: rgb(244, 184, 228);
31 | --ctp-frappe-pink-hsl: hsl(316, 73%, 84%);
32 | --ctp-macchiato-pink: #f5bde6;
33 | --ctp-macchiato-pink-rgb: rgb(245, 189, 230);
34 | --ctp-macchiato-pink-hsl: hsl(316, 74%, 85%);
35 | --ctp-mocha-pink: #f5c2e7;
36 | --ctp-mocha-pink-rgb: rgb(245, 194, 231);
37 | --ctp-mocha-pink-hsl: hsl(316, 72%, 86%);
38 | --ctp-latte-mauve: #8839ef;
39 | --ctp-latte-mauve-rgb: rgb(136, 57, 239);
40 | --ctp-latte-mauve-hsl: hsl(266, 85%, 58%);
41 | --ctp-frappe-mauve: #ca9ee6;
42 | --ctp-frappe-mauve-rgb: rgb(202, 158, 230);
43 | --ctp-frappe-mauve-hsl: hsl(277, 59%, 76%);
44 | --ctp-macchiato-mauve: #c6a0f6;
45 | --ctp-macchiato-mauve-rgb: rgb(198, 160, 246);
46 | --ctp-macchiato-mauve-hsl: hsl(267, 83%, 80%);
47 | --ctp-mocha-mauve: #cba6f7;
48 | --ctp-mocha-mauve-rgb: rgb(203, 166, 247);
49 | --ctp-mocha-mauve-hsl: hsl(267, 84%, 81%);
50 | --ctp-latte-red: #d20f39;
51 | --ctp-latte-red-rgb: rgb(210, 15, 57);
52 | --ctp-latte-red-hsl: hsl(347, 87%, 44%);
53 | --ctp-frappe-red: #e78284;
54 | --ctp-frappe-red-rgb: rgb(231, 130, 132);
55 | --ctp-frappe-red-hsl: hsl(359, 68%, 71%);
56 | --ctp-macchiato-red: #ed8796;
57 | --ctp-macchiato-red-rgb: rgb(237, 135, 150);
58 | --ctp-macchiato-red-hsl: hsl(351, 74%, 73%);
59 | --ctp-mocha-red: #f38ba8;
60 | --ctp-mocha-red-rgb: rgb(243, 139, 168);
61 | --ctp-mocha-red-hsl: hsl(343, 81%, 75%);
62 | --ctp-latte-maroon: #e64553;
63 | --ctp-latte-maroon-rgb: rgb(230, 69, 83);
64 | --ctp-latte-maroon-hsl: hsl(355, 76%, 59%);
65 | --ctp-frappe-maroon: #ea999c;
66 | --ctp-frappe-maroon-rgb: rgb(234, 153, 156);
67 | --ctp-frappe-maroon-hsl: hsl(358, 66%, 76%);
68 | --ctp-macchiato-maroon: #ee99a0;
69 | --ctp-macchiato-maroon-rgb: rgb(238, 153, 160);
70 | --ctp-macchiato-maroon-hsl: hsl(355, 71%, 77%);
71 | --ctp-mocha-maroon: #eba0ac;
72 | --ctp-mocha-maroon-rgb: rgb(235, 160, 172);
73 | --ctp-mocha-maroon-hsl: hsl(350, 65%, 77%);
74 | --ctp-latte-peach: #fe640b;
75 | --ctp-latte-peach-rgb: rgb(254, 100, 11);
76 | --ctp-latte-peach-hsl: hsl(22, 99%, 52%);
77 | --ctp-frappe-peach: #ef9f76;
78 | --ctp-frappe-peach-rgb: rgb(239, 159, 118);
79 | --ctp-frappe-peach-hsl: hsl(20, 79%, 70%);
80 | --ctp-macchiato-peach: #f5a97f;
81 | --ctp-macchiato-peach-rgb: rgb(245, 169, 127);
82 | --ctp-macchiato-peach-hsl: hsl(21, 86%, 73%);
83 | --ctp-mocha-peach: #fab387;
84 | --ctp-mocha-peach-rgb: rgb(250, 179, 135);
85 | --ctp-mocha-peach-hsl: hsl(23, 92%, 75%);
86 | --ctp-latte-yellow: #e49320;
87 | --ctp-latte-yellow-rgb: rgb(228, 147, 32);
88 | --ctp-latte-yellow-hsl: hsl(35, 78%, 51%);
89 | --ctp-frappe-yellow: #e5c890;
90 | --ctp-frappe-yellow-rgb: rgb(229, 200, 144);
91 | --ctp-frappe-yellow-hsl: hsl(40, 62%, 73%);
92 | --ctp-macchiato-yellow: #eed49f;
93 | --ctp-macchiato-yellow-rgb: rgb(238, 212, 159);
94 | --ctp-macchiato-yellow-hsl: hsl(40, 70%, 78%);
95 | --ctp-mocha-yellow: #f9e2af;
96 | --ctp-mocha-yellow-rgb: rgb(249, 226, 175);
97 | --ctp-mocha-yellow-hsl: hsl(41, 86%, 83%);
98 | --ctp-latte-green: #40a02b;
99 | --ctp-latte-green-rgb: rgb(64, 160, 43);
100 | --ctp-latte-green-hsl: hsl(109, 58%, 40%);
101 | --ctp-frappe-green: #a6d189;
102 | --ctp-frappe-green-rgb: rgb(166, 209, 137);
103 | --ctp-frappe-green-hsl: hsl(96, 44%, 68%);
104 | --ctp-macchiato-green: #a6da95;
105 | --ctp-macchiato-green-rgb: rgb(166, 218, 149);
106 | --ctp-macchiato-green-hsl: hsl(105, 48%, 72%);
107 | --ctp-mocha-green: #a6e3a1;
108 | --ctp-mocha-green-rgb: rgb(166, 227, 161);
109 | --ctp-mocha-green-hsl: hsl(115, 54%, 76%);
110 | --ctp-latte-teal: #179299;
111 | --ctp-latte-teal-rgb: rgb(23, 146, 153);
112 | --ctp-latte-teal-hsl: hsl(183, 74%, 35%);
113 | --ctp-frappe-teal: #81c8be;
114 | --ctp-frappe-teal-rgb: rgb(129, 200, 190);
115 | --ctp-frappe-teal-hsl: hsl(172, 39%, 65%);
116 | --ctp-macchiato-teal: #8bd5ca;
117 | --ctp-macchiato-teal-rgb: rgb(139, 213, 202);
118 | --ctp-macchiato-teal-hsl: hsl(171, 47%, 69%);
119 | --ctp-mocha-teal: #94e2d5;
120 | --ctp-mocha-teal-rgb: rgb(148, 226, 213);
121 | --ctp-mocha-teal-hsl: hsl(170, 57%, 73%);
122 | --ctp-latte-sky: #04a5e5;
123 | --ctp-latte-sky-rgb: rgb(4, 165, 229);
124 | --ctp-latte-sky-hsl: hsl(197, 97%, 46%);
125 | --ctp-frappe-sky: #99d1db;
126 | --ctp-frappe-sky-rgb: rgb(153, 209, 219);
127 | --ctp-frappe-sky-hsl: hsl(189, 48%, 73%);
128 | --ctp-macchiato-sky: #91d7e3;
129 | --ctp-macchiato-sky-rgb: rgb(145, 215, 227);
130 | --ctp-macchiato-sky-hsl: hsl(189, 59%, 73%);
131 | --ctp-mocha-sky: #89dceb;
132 | --ctp-mocha-sky-rgb: rgb(137, 220, 235);
133 | --ctp-mocha-sky-hsl: hsl(189, 71%, 73%);
134 | --ctp-latte-sapphire: #209fb5;
135 | --ctp-latte-sapphire-rgb: rgb(32, 159, 181);
136 | --ctp-latte-sapphire-hsl: hsl(189, 70%, 42%);
137 | --ctp-frappe-sapphire: #85c1dc;
138 | --ctp-frappe-sapphire-rgb: rgb(133, 193, 220);
139 | --ctp-frappe-sapphire-hsl: hsl(199, 55%, 69%);
140 | --ctp-macchiato-sapphire: #7dc4e4;
141 | --ctp-macchiato-sapphire-rgb: rgb(125, 196, 228);
142 | --ctp-macchiato-sapphire-hsl: hsl(199, 66%, 69%);
143 | --ctp-mocha-sapphire: #74c7ec;
144 | --ctp-mocha-sapphire-rgb: rgb(116, 199, 236);
145 | --ctp-mocha-sapphire-hsl: hsl(199, 76%, 69%);
146 | --ctp-latte-blue: #2a6ef5;
147 | --ctp-latte-blue-rgb: rgb(42, 110, 245);
148 | --ctp-latte-blue-hsl: hsl(220, 91%, 56%);
149 | --ctp-frappe-blue: #8caaee;
150 | --ctp-frappe-blue-rgb: rgb(140, 170, 238);
151 | --ctp-frappe-blue-hsl: hsl(222, 74%, 74%);
152 | --ctp-macchiato-blue: #8aadf4;
153 | --ctp-macchiato-blue-rgb: rgb(138, 173, 244);
154 | --ctp-macchiato-blue-hsl: hsl(220, 83%, 75%);
155 | --ctp-mocha-blue: #87b0f9;
156 | --ctp-mocha-blue-rgb: rgb(135, 176, 249);
157 | --ctp-mocha-blue-hsl: hsl(218, 90%, 75%);
158 | --ctp-latte-lavender: #7287fd;
159 | --ctp-latte-lavender-rgb: rgb(114, 135, 253);
160 | --ctp-latte-lavender-hsl: hsl(231, 97%, 72%);
161 | --ctp-frappe-lavender: #babbf1;
162 | --ctp-frappe-lavender-rgb: rgb(186, 187, 241);
163 | --ctp-frappe-lavender-hsl: hsl(239, 66%, 84%);
164 | --ctp-macchiato-lavender: #b7bdf8;
165 | --ctp-macchiato-lavender-rgb: rgb(183, 189, 248);
166 | --ctp-macchiato-lavender-hsl: hsl(234, 82%, 85%);
167 | --ctp-mocha-lavender: #b4befe;
168 | --ctp-mocha-lavender-rgb: rgb(180, 190, 254);
169 | --ctp-mocha-lavender-hsl: hsl(232, 97%, 85%);
170 | --ctp-latte-text: #4c4f69;
171 | --ctp-latte-text-rgb: rgb(76, 79, 105);
172 | --ctp-latte-text-hsl: hsl(234, 16%, 35%);
173 | --ctp-frappe-text: #c6ceef;
174 | --ctp-frappe-text-rgb: rgb(198, 206, 239);
175 | --ctp-frappe-text-hsl: hsl(228, 56%, 86%);
176 | --ctp-macchiato-text: #c5cff5;
177 | --ctp-macchiato-text-rgb: rgb(197, 207, 245);
178 | --ctp-macchiato-text-hsl: hsl(228, 71%, 87%);
179 | --ctp-mocha-text: #c6d0f5;
180 | --ctp-mocha-text-rgb: rgb(198, 208, 245);
181 | --ctp-mocha-text-hsl: hsl(227, 70%, 87%);
182 | --ctp-latte-subtext1: #5c5f77;
183 | --ctp-latte-subtext1-rgb: rgb(92, 95, 119);
184 | --ctp-latte-subtext1-hsl: hsl(233, 13%, 41%);
185 | --ctp-frappe-subtext1: #b5bddc;
186 | --ctp-frappe-subtext1-rgb: rgb(181, 189, 220);
187 | --ctp-frappe-subtext1-hsl: hsl(228, 36%, 79%);
188 | --ctp-macchiato-subtext1: #b3bce0;
189 | --ctp-macchiato-subtext1-rgb: rgb(179, 188, 224);
190 | --ctp-macchiato-subtext1-hsl: hsl(228, 42%, 79%);
191 | --ctp-mocha-subtext1: #b3bcdf;
192 | --ctp-mocha-subtext1-rgb: rgb(179, 188, 223);
193 | --ctp-mocha-subtext1-hsl: hsl(228, 41%, 79%);
194 | --ctp-latte-subtext0: #6c6f85;
195 | --ctp-latte-subtext0-rgb: rgb(108, 111, 133);
196 | --ctp-latte-subtext0-hsl: hsl(233, 10%, 47%);
197 | --ctp-frappe-subtext0: #a5acc9;
198 | --ctp-frappe-subtext0-rgb: rgb(165, 172, 201);
199 | --ctp-frappe-subtext0-hsl: hsl(228, 25%, 72%);
200 | --ctp-macchiato-subtext0: #a1aacb;
201 | --ctp-macchiato-subtext0-rgb: rgb(161, 170, 203);
202 | --ctp-macchiato-subtext0-hsl: hsl(227, 29%, 71%);
203 | --ctp-mocha-subtext0: #a1a8c9;
204 | --ctp-mocha-subtext0-rgb: rgb(161, 168, 201);
205 | --ctp-mocha-subtext0-hsl: hsl(229, 27%, 71%);
206 | --ctp-latte-overlay2: #7c7f93;
207 | --ctp-latte-overlay2-rgb: rgb(124, 127, 147);
208 | --ctp-latte-overlay2-hsl: hsl(232, 10%, 53%);
209 | --ctp-frappe-overlay2: #949bb7;
210 | --ctp-frappe-overlay2-rgb: rgb(148, 155, 183);
211 | --ctp-frappe-overlay2-hsl: hsl(228, 20%, 65%);
212 | --ctp-macchiato-overlay2: #8f97b7;
213 | --ctp-macchiato-overlay2-rgb: rgb(143, 151, 183);
214 | --ctp-macchiato-overlay2-hsl: hsl(228, 22%, 64%);
215 | --ctp-mocha-overlay2: #8e95b3;
216 | --ctp-mocha-overlay2-rgb: rgb(142, 149, 179);
217 | --ctp-mocha-overlay2-hsl: hsl(229, 20%, 63%);
218 | --ctp-latte-overlay1: #8c8fa1;
219 | --ctp-latte-overlay1-rgb: rgb(140, 143, 161);
220 | --ctp-latte-overlay1-hsl: hsl(231, 10%, 59%);
221 | --ctp-frappe-overlay1: #838aa4;
222 | --ctp-frappe-overlay1-rgb: rgb(131, 138, 164);
223 | --ctp-frappe-overlay1-hsl: hsl(227, 15%, 58%);
224 | --ctp-macchiato-overlay1: #7d84a2;
225 | --ctp-macchiato-overlay1-rgb: rgb(125, 132, 162);
226 | --ctp-macchiato-overlay1-hsl: hsl(229, 17%, 56%);
227 | --ctp-mocha-overlay1: #7b819d;
228 | --ctp-mocha-overlay1-rgb: rgb(123, 129, 157);
229 | --ctp-mocha-overlay1-hsl: hsl(229, 15%, 55%);
230 | --ctp-latte-overlay0: #9ca0b0;
231 | --ctp-latte-overlay0-rgb: rgb(156, 160, 176);
232 | --ctp-latte-overlay0-hsl: hsl(228, 11%, 65%);
233 | --ctp-frappe-overlay0: #737891;
234 | --ctp-frappe-overlay0-rgb: rgb(115, 120, 145);
235 | --ctp-frappe-overlay0-hsl: hsl(230, 12%, 51%);
236 | --ctp-macchiato-overlay0: #6c728d;
237 | --ctp-macchiato-overlay0-rgb: rgb(108, 114, 141);
238 | --ctp-macchiato-overlay0-hsl: hsl(229, 13%, 49%);
239 | --ctp-mocha-overlay0: #696d86;
240 | --ctp-mocha-overlay0-rgb: rgb(105, 109, 134);
241 | --ctp-mocha-overlay0-hsl: hsl(232, 12%, 47%);
242 | --ctp-latte-surface2: #acb0be;
243 | --ctp-latte-surface2-rgb: rgb(172, 176, 190);
244 | --ctp-latte-surface2-hsl: hsl(227, 12%, 71%);
245 | --ctp-frappe-surface2: #62677e;
246 | --ctp-frappe-surface2-rgb: rgb(98, 103, 126);
247 | --ctp-frappe-surface2-hsl: hsl(229, 13%, 44%);
248 | --ctp-macchiato-surface2: #5a5f78;
249 | --ctp-macchiato-surface2-rgb: rgb(90, 95, 120);
250 | --ctp-macchiato-surface2-hsl: hsl(230, 14%, 41%);
251 | --ctp-mocha-surface2: #565970;
252 | --ctp-mocha-surface2-rgb: rgb(86, 89, 112);
253 | --ctp-mocha-surface2-hsl: hsl(233, 13%, 39%);
254 | --ctp-latte-surface1: #bcc0cc;
255 | --ctp-latte-surface1-rgb: rgb(188, 192, 204);
256 | --ctp-latte-surface1-hsl: hsl(225, 14%, 77%);
257 | --ctp-frappe-surface1: #51566c;
258 | --ctp-frappe-surface1-rgb: rgb(81, 86, 108);
259 | --ctp-frappe-surface1-hsl: hsl(229, 14%, 37%);
260 | --ctp-macchiato-surface1: #484c64;
261 | --ctp-macchiato-surface1-rgb: rgb(72, 76, 100);
262 | --ctp-macchiato-surface1-hsl: hsl(231, 16%, 34%);
263 | --ctp-mocha-surface1: #43465a;
264 | --ctp-mocha-surface1-rgb: rgb(67, 70, 90);
265 | --ctp-mocha-surface1-hsl: hsl(232, 15%, 31%);
266 | --ctp-latte-surface0: #ccd0da;
267 | --ctp-latte-surface0-rgb: rgb(204, 208, 218);
268 | --ctp-latte-surface0-hsl: hsl(223, 16%, 83%);
269 | --ctp-frappe-surface0: #414559;
270 | --ctp-frappe-surface0-rgb: rgb(65, 69, 89);
271 | --ctp-frappe-surface0-hsl: hsl(230, 16%, 30%);
272 | --ctp-macchiato-surface0: #363a4f;
273 | --ctp-macchiato-surface0-rgb: rgb(54, 58, 79);
274 | --ctp-macchiato-surface0-hsl: hsl(230, 19%, 26%);
275 | --ctp-mocha-surface0: #313244;
276 | --ctp-mocha-surface0-rgb: rgb(49, 50, 68);
277 | --ctp-mocha-surface0-hsl: hsl(237, 16%, 23%);
278 | --ctp-latte-base: #eff1f5;
279 | --ctp-latte-base-rgb: rgb(239, 241, 245);
280 | --ctp-latte-base-hsl: hsl(220, 23%, 95%);
281 | --ctp-frappe-base: #303446;
282 | --ctp-frappe-base-rgb: rgb(48, 52, 70);
283 | --ctp-frappe-base-hsl: hsl(229, 19%, 23%);
284 | --ctp-macchiato-base: #24273a;
285 | --ctp-macchiato-base-rgb: rgb(36, 39, 58);
286 | --ctp-macchiato-base-hsl: hsl(232, 23%, 18%);
287 | --ctp-mocha-base: #1e1e2e;
288 | --ctp-mocha-base-rgb: rgb(30, 30, 46);
289 | --ctp-mocha-base-hsl: hsl(240, 21%, 15%);
290 | --ctp-latte-mantle: #e6e9ef;
291 | --ctp-latte-mantle-rgb: rgb(230, 233, 239);
292 | --ctp-latte-mantle-hsl: hsl(220, 22%, 92%);
293 | --ctp-frappe-mantle: #292c3c;
294 | --ctp-frappe-mantle-rgb: rgb(41, 44, 60);
295 | --ctp-frappe-mantle-hsl: hsl(231, 19%, 20%);
296 | --ctp-macchiato-mantle: #1e2030;
297 | --ctp-macchiato-mantle-rgb: rgb(30, 32, 48);
298 | --ctp-macchiato-mantle-hsl: hsl(233, 23%, 15%);
299 | --ctp-mocha-mantle: #181825;
300 | --ctp-mocha-mantle-rgb: rgb(24, 24, 37);
301 | --ctp-mocha-mantle-hsl: hsl(240, 21%, 12%);
302 | --ctp-latte-crust: #dce0e8;
303 | --ctp-latte-crust-rgb: rgb(220, 224, 232);
304 | --ctp-latte-crust-hsl: hsl(220, 21%, 89%);
305 | --ctp-frappe-crust: #232634;
306 | --ctp-frappe-crust-rgb: rgb(35, 38, 52);
307 | --ctp-frappe-crust-hsl: hsl(229, 20%, 17%);
308 | --ctp-macchiato-crust: #181926;
309 | --ctp-macchiato-crust-rgb: rgb(24, 25, 38);
310 | --ctp-macchiato-crust-hsl: hsl(236, 23%, 12%);
311 | --ctp-mocha-crust: #11111b;
312 | --ctp-mocha-crust-rgb: rgb(17, 17, 27);
313 | --ctp-mocha-crust-hsl: hsl(240, 23%, 9%);
314 | }
315 |
--------------------------------------------------------------------------------
/chrome/resources/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Tnixc/firefox-config/70874d5eab359439576eb6b830012a8036895aa8/chrome/resources/.DS_Store
--------------------------------------------------------------------------------
/chrome/resources/controls/case-sensitive.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/controls/close.svg:
--------------------------------------------------------------------------------
1 |
4 |
8 |
--------------------------------------------------------------------------------
/chrome/resources/controls/entire-word.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/controls/menu-arrow-left-tiny.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/controls/menu-arrow-tiny.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/3rdpartycookies-disabled.svg:
--------------------------------------------------------------------------------
1 |
4 |
8 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/3rdpartycookies.svg:
--------------------------------------------------------------------------------
1 |
4 |
7 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/bitwarden.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/bypass-paywalls.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/case-sensitive.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/command-frames.svg:
--------------------------------------------------------------------------------
1 |
4 |
8 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/container-base.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/container-go.svg:
--------------------------------------------------------------------------------
1 |
4 |
11 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/container-plus.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/darkmode.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/dislike.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/fingerprint.svg:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/github.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/hide-password.svg:
--------------------------------------------------------------------------------
1 |
4 |
7 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/hydrus.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/link.svg:
--------------------------------------------------------------------------------
1 |
4 |
9 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/pushbullet-solid.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/rainmeter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/react.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/show-password.svg:
--------------------------------------------------------------------------------
1 |
4 |
7 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/sidebery.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/sponsorblock.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/stylus.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/svg-gobbler.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/sync.svg:
--------------------------------------------------------------------------------
1 |
4 |
7 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/tool-inspector.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/tool-styleeditor.svg:
--------------------------------------------------------------------------------
1 |
4 |
7 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/tool-webconsole.svg:
--------------------------------------------------------------------------------
1 |
4 |
8 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/translate-small.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/translate.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/tree-style-tabs-32.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/tree-style-tabs.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/extensions/yomichan.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/folder-add.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/folder-open.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/folder-save.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/folder-snippets.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/folder-source.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/folder-special.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/folder-upload.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/folder-user-round.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/folder-user.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/folder.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/material/tag.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/chrome/resources/nav-bar/back.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/resources/nav-bar/forward.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/chrome/resources/userChrome.ag.css:
--------------------------------------------------------------------------------
1 | /* This example style is loaded globally as agent sheet. That means it will affect every document that is loaded including web sites so you really want to constrain your styles to apply only where you want. Thus, the default namespace is set to xul to make rules apply to xul elements. Should you want to apply rules to html elements, you need to use the namespace selector like: html|input */
2 |
3 | /* Default to xul namespace */
4 | @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
5 |
6 | /* Allow selecting html elements with named namespace selector */
7 | @namespace html url("http://www.w3.org/1999/xhtml");
8 |
9 | /* Demonstrates namespace selector - this would only affect tooltip elements that are html elements. But those don't exist so this does nothing. If you remove the "html|" prefix, then all your tooltips will be black */
10 | html|tooltip {
11 | -moz-appearance: none;
12 | background-color: rgb(15, 17, 34);
13 | color: rgba(255, 255, 255, 1);
14 | border: none;
15 | padding: 5px;
16 | }
17 |
--------------------------------------------------------------------------------
/chrome/resources/userChrome.au.css:
--------------------------------------------------------------------------------
1 | /* This example file is supposed to be loaded as author style sheet. Notice that we can use ::part() ::host() etc. selectors here while they are unavailable in user stylesheets. */
2 |
3 | /* Default to xul namespace */
4 | @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
5 |
6 | /* Allow selecting html elements with named namespace selector */
7 | @namespace html url("http://www.w3.org/1999/xhtml");
8 |
9 | /* Example - this creates a small dot to appear in the top left corner of devtools-button popup - but not in any other panel */
10 | #customizationui-widget-panel[viewId="PanelUI-developer-tools"]::part(
11 | content
12 | )::before {
13 | content: "";
14 | display: -moz-box;
15 | position: relative;
16 | z-index: 2;
17 | width: 9px;
18 | margin-inline-end: -9px;
19 | background-image: radial-gradient(
20 | currentcolor,
21 | currentcolor,
22 | transparent 90%
23 | );
24 | background-size: 5px 5px;
25 | background-position: 4px 4px;
26 | background-repeat: no-repeat;
27 | }
28 |
--------------------------------------------------------------------------------
/chrome/resources/window/close-hover.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
--------------------------------------------------------------------------------
/chrome/resources/window/close.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
--------------------------------------------------------------------------------
/chrome/resources/window/inactive.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
--------------------------------------------------------------------------------
/chrome/resources/window/maximize-hover.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/chrome/resources/window/maximize-restore.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/chrome/resources/window/maximize.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/chrome/resources/window/minimize-hover.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/chrome/resources/window/minimize.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/chrome/userChrome.css:
--------------------------------------------------------------------------------
1 | @import url("./components/simpleMenuWizard/_index.css");
2 |
3 | @import url("./_config.css");
4 | @import url("./components/_reassign.css");
5 | @import url("./components/titlebar.css");
6 | @import url("./components/tabs.css");
7 | @import url("./components/nav-bar.css");
8 | @import url("./components/extensions.css");
9 | @import url("./components/bookmarks-bar.css");
10 | @import url("./components/sidebar.css");
11 | @import url("./components/findbar.css");
12 |
13 | :root {
14 | /* delay before expanding tabs, set to '0' for no delay */
15 | --delay: 0s;
16 | --transition-time: 0.12s;
17 | --positionX1: 48px; /* '48px' for left, '0px' for right sidebar */
18 | --positionX2: absolute; /* 'absolute' for left, 'none' for right sidebar */
19 | }
20 |
21 | /* General styles */
22 | #browser {
23 | position: relative;
24 | }
25 |
26 | #nav-bar,
27 | #urlbar {
28 | z-index: 100;
29 | }
30 |
31 | #sidebar-box:not([lwt-sidebar]) {
32 | appearance: unset !important;
33 | }
34 |
35 | #sidebar-box[sidebarcommand*="tabcenter"] {
36 | z-index: 1;
37 | }
38 |
39 | #sidebar-box[sidebarcommand*="tabcenter"] #sidebar-header {
40 | visibility: collapse;
41 | display: none;
42 | }
43 |
44 | [sidebarcommand*="tabcenter"] #sidebar,
45 | #sidebar-box[sidebarcommand*="tabcenter"] {
46 | min-width: 48px !important;
47 | max-width: 48px !important;
48 | width: 48px;
49 | }
50 |
51 | #sidebar-box[sidebarcommand*="tabcenter"]:not([hidden]) {
52 | display: block;
53 | position: var(--positionX2);
54 | box-sizing: content-box;
55 | min-width: 48px;
56 | max-width: 48px;
57 | overflow: hidden;
58 | border-right: 1px solid var(--sidebar-border-color);
59 | z-index: 1;
60 | top: 0;
61 | bottom: 0;
62 | }
63 |
64 | #main-window[inFullscreen]
65 | #sidebar-box[sidebarcommand*="tabcenter"]:not([hidden]) {
66 | min-width: 1px;
67 | max-width: 1px;
68 | }
69 |
70 | #sidebar-box[sidebarcommand*="tabcenter"]:hover #sidebar,
71 | #sidebar-box[sidebarcommand*="tabcenter"]:hover {
72 | min-width: 10vw !important;
73 | width: 30vw !important;
74 | max-width: 200px !important;
75 | z-index: 1 !important;
76 | transition: all var(--transition-time) ease var(--delay);
77 | }
78 |
79 | /* used for delay function */
80 | #sidebar-box[sidebarcommand*="tabcenter"]:not(:hover) #sidebar,
81 | #sidebar-box[sidebarcommand*="tabcenter"]:not(:hover) {
82 | transition: all var(--transition-time) ease 0s;
83 | }
84 |
85 | @media (width >= 1200px) {
86 | #sidebar-box[sidebarcommand*="tabcenter"]:hover #sidebar,
87 | #sidebar-box[sidebarcommand*="tabcenter"]:hover {
88 | max-width: 250px !important;
89 | }
90 | }
91 |
92 | [sidebarcommand*="tabcenter"] ~ #sidebar-splitter {
93 | display: none;
94 | }
95 |
96 | [sidebarcommand*="tabcenter"] #sidebar {
97 | max-height: 100%;
98 | height: 100%;
99 | }
100 |
101 | #main-window:not([inFullscreen])
102 | #sidebar-box[sidebarcommand*="tabcenter"]:not([hidden])
103 | ~ #appcontent {
104 | margin-left: var(--positionX1);
105 | }
106 |
107 | #main-window[inFullscreen][inDOMFullscreen] #appcontent {
108 | margin-left: 0;
109 | }
110 |
111 | #main-window[inFullscreen] #sidebar {
112 | height: 100vh;
113 | }
114 |
115 | [sidebarcommand*="tabcenter"] #sidebar-header {
116 | background: #0c0c0d;
117 | border-bottom: none !important;
118 | }
119 |
120 | [sidebarcommand*="tabcenter"] ~ #sidebar-splitter {
121 | border-right-color: #0c0c0d !important;
122 | border-left-color: #0c0c0d !important;
123 | }
124 |
125 | [sidebarcommand*="tabcenter"] #sidebar-switcher-target,
126 | [sidebarcommand*="tabcenter"] #sidebar-close {
127 | filter: invert(100%);
128 | }
129 |
130 | @media (max-width: 630px) {
131 | #urlbar-container {
132 | min-width: 100% !important;
133 | }
134 |
135 | #menubar-items {
136 | display: none !important;
137 | }
138 | }
139 |
140 | #back-button,
141 | #forward-button {
142 | padding: 0 !important;
143 | }
144 | #back-button > .toolbarbutton-icon {
145 | list-style-image: url("img/back.svg") !important;
146 | }
147 | #forward-button > .toolbarbutton-icon {
148 | list-style-image: url("img/forward.svg") !important;
149 | }
150 | #reload-button > .toolbarbutton-icon {
151 | list-style-image: url("img/reload.svg") !important;
152 | }
153 | #history-panelmenu {
154 | list-style-image: url("img/history.svg") !important;
155 | }
156 | #downloads-indicator-icon {
157 | list-style-image: url("img/downloads.svg") !important;
158 | }
159 | #bookmarks-menu-button > .toolbarbutton-icon {
160 | list-style-image: url("img/bookmarks.svg") !important;
161 | }
162 | #nav-bar-overflow-button > .toolbarbutton-icon {
163 | list-style-image: url("img/overflow.svg") !important;
164 | }
165 | #PanelUI-menu-button {
166 | list-style-image: url("img/menu.svg") !important;
167 | }
168 |
169 | #urlbar {
170 | color: #f5e0dc !important;
171 | font-size: 13px !important;
172 | text-align: left !important;
173 | transition: all ease-in-out 200ms !important;
174 | background: none !important;
175 | }
176 | #urlbar:not([focused]) .urlbar-input-box {
177 | text-align: center;
178 | transition: all ease-in-out 200ms !important;
179 | }
180 | #urlbar:not([focused]) * {
181 | background: transparent !important;
182 | }
183 | #navigator-toolbox-background > * {
184 | background-color: #1e1e2e !important;
185 | color: #f5e0dc !important;
186 | }
187 |
188 | #nordvpnproxy_nordvpn_com-BAP {
189 | filter: brightness(0) saturate(100%) invert(86%) sepia(12%) saturate(5288%)
190 | hue-rotate(188deg) brightness(100%) contrast(102%) !important;
191 | }
192 | #_5bc8d6f7-79e6-42b0-a64e-06a05dc2db5d_-BAP
193 | > stack:nth-child(1)
194 | > image:nth-child(1) {
195 | filter: brightness(0) saturate(100%) invert(86%) sepia(12%) saturate(5288%)
196 | hue-rotate(188deg) brightness(100%) contrast(102%) !important;
197 | }
198 | :root[dialogroot],
199 | :host(dialog) {
200 | --in-content-page-background: #1e1e2e !important;
201 | }
202 | #star-button {
203 | filter: brightness(0%) saturate(100%) invert(65%) sepia(72%) saturate(353%)
204 | hue-rotate(198deg) brightness(104%) contrast(99%) !important;
205 | }
206 |
207 | #downloads-button,
208 | #reader-mode-button-icon {
209 | filter: saturate(0%) brightness(0%) invert(74%) sepia(28%) saturate(2428%)
210 | hue-rotate(188deg) brightness(104%) contrast(91%) !important;
211 | }
212 |
213 | /* Hide the tab bar */
214 | #TabsToolbar {
215 | display: none !important;
216 | }
217 |
218 | #sidebar-box {
219 | padding: 0 !important;
220 | }
221 | #webext-panels-stack {
222 | overflow-x: hidden !important;
223 | }
224 |
--------------------------------------------------------------------------------
/chrome/userContent.css:
--------------------------------------------------------------------------------
1 | @import url("_config.css");
2 |
3 | :host,
4 | :root {
5 | --in-content-page-color: #4c4f69 !important;
6 | --in-content-page-background: #e6e9ef !important;
7 | --in-content-deemphasized-text: #6c6f85 !important;
8 | --in-content-box-background: #eff1f5 !important;
9 | --in-content-box-border-color: #bcc0cc !important;
10 | --in-content-box-info-background: #eff1f5 !important;
11 | --in-content-icon-color: #eff1f5 !important;
12 | --in-content-border-color: #bcc0cc !important;
13 | --in-content-error-text-color: #d20f39 !important;
14 | --in-content-button-background: #ccd0da !important;
15 | --in-content-button-background-hover: #bdc2cf !important;
16 | --in-content-button-background-active: #b1b7c6 !important;
17 | --in-content-primary-button-text-color: #eff1f5 !important;
18 | --in-content-primary-button-background: #1e66f5 !important;
19 | --in-content-primary-button-background-hover: #0a52e0 !important;
20 | --in-content-primary-button-background-active: #094dd3 !important;
21 | --in-content-danger-button-background: #e64553;
22 | --in-content-danger-button-background-hover: #e01e2f !important;
23 | --in-content-danger-button-background-active: #d31c2c !important;
24 | --in-content-table-background: #eff1f5 !important;
25 | --blue-40: #3575f6 !important;
26 | --blue-50: #1e66f5 !important;
27 | --blue-60: #0b56ed !important;
28 | --blue-70: #094dd3 !important;
29 | --blue-80: #0843b8 !important;
30 | --grey-30: #ccd0da !important;
31 | --grey-60: #7c7f93 !important;
32 | --grey-90-a10: rgba(92, 95, 119, 0.1) !important;
33 | --grey-90-a20: rgba(92, 95, 119, 0.2) !important;
34 | --grey-90-a30: rgba(92, 95, 119, 0.3) !important;
35 | --grey-90-a50: rgba(92, 95, 119, 0.5) !important;
36 | --grey-90-a60: rgba(92, 95, 119, 0.6) !important;
37 | --green-50: #40a02b !important;
38 | --green-60: #3a9027 !important;
39 | --green-70: #338022 !important;
40 | --green-80: #2d701e !important;
41 | --green-90: #26601a !important;
42 | --orange-50: #fe640b !important;
43 | --red-40: #ed1140 !important;
44 | --red-50: #d20f39 !important;
45 | --red-60: #bd0e33 !important;
46 | --red-70: #a80c2e !important;
47 | --red-80: #930b28 !important;
48 | --red-90: #7e0922 !important;
49 | --yellow-50: #df8e1d !important;
50 | --yellow-60: #c9801a !important;
51 | --yellow-60-a30: rgba(201, 128, 26, 0.3) !important;
52 | --yellow-70: #b27217 !important;
53 | --yellow-80: #9c6314 !important;
54 | --yellow-90: #865511 !important;
55 | }
56 |
57 | .identity-color-toolbar {
58 | --identity-tab-color: #4c4f69 !important;
59 | --identity-icon-color: #4c4f69 !important;
60 | }
61 |
62 | .identity-color-blue {
63 | --identity-tab-color: #209fb5 !important;
64 | --identity-icon-color: #209fb5 !important;
65 | }
66 |
67 | .identity-color-turquoise {
68 | --identity-tab-color: #179299 !important;
69 | --identity-icon-color: #179299 !important;
70 | }
71 |
72 | .identity-color-green {
73 | --identity-tab-color: #40a02b !important;
74 | --identity-icon-color: #40a02b !important;
75 | }
76 |
77 | .identity-color-yellow {
78 | --identity-tab-color: #df8e1d !important;
79 | --identity-icon-color: #df8e1d !important;
80 | }
81 |
82 | .identity-color-orange {
83 | --identity-tab-color: #fe640b !important;
84 | --identity-icon-color: #fe640b !important;
85 | }
86 |
87 | .identity-color-red {
88 | --identity-tab-color: #d20f39 !important;
89 | --identity-icon-color: #d20f39 !important;
90 | }
91 |
92 | .identity-color-pink {
93 | --identity-tab-color: #ea76cb !important;
94 | --identity-icon-color: #ea76cb !important;
95 | }
96 |
97 | .identity-color-purple {
98 | --identity-tab-color: #8839ef !important;
99 | --identity-icon-color: #8839ef !important;
100 | }
101 |
102 | @media (prefers-color-scheme: dark) {
103 | :host,
104 | :root {
105 | --in-content-page-background: #181825 !important;
106 | --in-content-page-color: #cdd6f4 !important;
107 | --in-content-deemphasized-text: #a6adc8 !important;
108 | --in-content-box-background: #1e1e2e !important;
109 | --in-content-table-border-color: #45475a !important;
110 | --in-content-box-info-background: #1e1e2e !important;
111 | --in-content-box-border-color: #45475a !important;
112 | --in-content-border-color: #313244 !important;
113 | --in-content-border-hover: #45475a !important;
114 | --in-content-border-invalid: #ed9eab !important;
115 | --in-content-error-text-color: #eba0ac !important;
116 | --in-content-button-background: #313244 !important;
117 | --in-content-button-background-hover: #2a2b3a !important;
118 | --in-content-button-background-active: #393a4f !important;
119 | --in-content-icon-color: #11111b !important;
120 | --in-content-primary-button-text-color: #11111b !important;
121 | --in-content-primary-button-background: #89b4fa !important;
122 | --in-content-primary-button-background-hover: #89b4fb !important;
123 | --in-content-primary-button-background-active: #8fb8fa !important;
124 | --in-content-danger-button-background: #eba0ac !important;
125 | --in-content-danger-button-background-hover: #e16f81 !important;
126 | --in-content-danger-button-background-active: #eca5b0 !important;
127 | --in-content-table-background: #1e1e2e !important;
128 | --card-outline-color: #585b70 !important;
129 | --dialog-warning-text-color: #eba0ac !important;
130 | }
131 | .identity-color-toolbar {
132 | --identity-tab-color: #cdd6f4 !important;
133 | --identity-icon-color: #cdd6f4 !important;
134 | }
135 | .identity-color-blue {
136 | --identity-tab-color: #74c7ec !important;
137 | --identity-icon-color: #74c7ec !important;
138 | }
139 | .identity-color-turquoise {
140 | --identity-tab-color: #94e2d5 !important;
141 | --identity-icon-color: #94e2d5 !important;
142 | }
143 | .identity-color-green {
144 | --identity-tab-color: #a6e3a1 !important;
145 | --identity-icon-color: #a6e3a1 !important;
146 | }
147 | .identity-color-yellow {
148 | --identity-tab-color: #f9e2af !important;
149 | --identity-icon-color: #f9e2af !important;
150 | }
151 | .identity-color-orange {
152 | --identity-tab-color: #fab387 !important;
153 | --identity-icon-color: #fab387 !important;
154 | }
155 | .identity-color-red {
156 | --identity-tab-color: #f38ba8 !important;
157 | --identity-icon-color: #f38ba8 !important;
158 | }
159 | .identity-color-pink {
160 | --identity-tab-color: #f5c2e7 !important;
161 | --identity-icon-color: #f5c2e7 !important;
162 | }
163 | .identity-color-purple {
164 | --identity-tab-color: #cba6f7 !important;
165 | --identity-icon-color: #cba6f7 !important;
166 | }
167 | }
168 |
--------------------------------------------------------------------------------
/chrome/utils/chrome.manifest:
--------------------------------------------------------------------------------
1 | content userchromejs ./
2 | content userscripts ../js/
3 |
--------------------------------------------------------------------------------