Skip to content
Merged
Show file tree
Hide file tree
Changes from 116 commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
4369d5b
Add basic boosts implementation
FlorianButz Oct 29, 2025
f799d00
feat: Add boosts backend boilerplate, b=no-bug, c=no-component
mr-cheffy Oct 29, 2025
a4e1a76
Merge branch 'dev' into dev
mr-cheffy Oct 30, 2025
4ee1235
feat: Add changes to firefox engine, b=no-bug, c=no-component
mr-cheffy Oct 30, 2025
690ab56
Merge branch 'dev' of https://github.com/FlorianButz/desktop into Flo…
mr-cheffy Oct 30, 2025
b9e8c39
chore: Fix builds and lint, b=no-bug, c=no-component
mr-cheffy Oct 30, 2025
6c2c798
Change boost editor to be a separate window
FlorianButz Oct 30, 2025
6d4578e
Add check if current tab can be boosted
FlorianButz Oct 30, 2025
bcb8488
Run lint:fix
FlorianButz Oct 30, 2025
4091a77
feat: Expose the c++ API to JS, b=no-bug, c=no-component
mr-cheffy Oct 31, 2025
fcd7f97
Merge branch 'dev' of https://github.com/FlorianButz/desktop into Flo…
mr-cheffy Oct 31, 2025
6361570
Add boost panel in site specific settings
FlorianButz Oct 31, 2025
f19f688
Merge branch 'dev' of https://github.com/FlorianButz/desktop into dev
FlorianButz Oct 31, 2025
ba57df3
Merge branch 'dev' into dev
mr-cheffy Oct 31, 2025
672461f
feat: Make boost data be stored on the browsing context, b=no-bug, c=…
mr-cheffy Oct 31, 2025
f1ce0da
chore: use better icons
FlorianButz Oct 31, 2025
4f337ed
feat: Listen for changes for the browser context, b=no-bug, c=common,…
mr-cheffy Oct 31, 2025
b16e38d
Merge branch 'dev' of https://github.com/FlorianButz/desktop into Flo…
mr-cheffy Oct 31, 2025
afd3b0d
feat: Propagate data into the current context, not the top one, b=no-…
mr-cheffy Oct 31, 2025
b8ef442
feat: Hint for a restyle after changing boost colors, b=no-bug, c=no-…
mr-cheffy Oct 31, 2025
d8da71d
feat: bridge communication using child actor
FlorianButz Oct 31, 2025
d0b8062
feat: Change UI
FlorianButz Oct 31, 2025
f211080
fix: missing methods, simplify writing to disk
FlorianButz Oct 31, 2025
4d03d8d
chore: Small fixes, b=no-bug, c=no-component
mr-cheffy Oct 31, 2025
de3d0ae
Merge branch 'dev' of https://github.com/FlorianButz/desktop into Flo…
mr-cheffy Oct 31, 2025
eae5524
chore: Clean up, b=no-bug, c=no-component
mr-cheffy Oct 31, 2025
0886619
fix: change communication of actors, cleanup
FlorianButz Nov 1, 2025
c0d04f9
feat: Prevent flashing when going between pages, b=no-bug, c=common
mr-cheffy Nov 1, 2025
f9c948a
feat: Start taking into account contrast values, b=no-bug, c=no-compo…
mr-cheffy Nov 4, 2025
1ac6a40
feat: Correctly calculate color lightness based on contrast, b=no-bug…
mr-cheffy Nov 4, 2025
a554c6c
feat: update editor UI to look more like Arc's
FlorianButz Nov 7, 2025
bb2dc09
fix: remove logs, update select properly
FlorianButz Nov 7, 2025
23e6555
Merge branch 'dev' into dev
mr-cheffy Nov 8, 2025
383520b
chore: Small changes, b=no-bug, c=common
mr-cheffy Nov 8, 2025
1e56261
Merge branch 'dev' into dev
mr-cheffy Nov 8, 2025
54b45eb
feat: Convert the window into a proper XUL doc and implement scale, b…
mr-cheffy Nov 8, 2025
e1c6e28
feat: Finish migration to xhtml window, b=no-bug, c=common
mr-cheffy Nov 8, 2025
27e3501
chore: Cleanups, b=no-bug, c=common
mr-cheffy Nov 9, 2025
4e12ac4
feat: add system font fetching
FlorianButz Nov 9, 2025
f859aa1
feat: Implemented stylesheet managers, b=no-bug, c=no-component
mr-cheffy Nov 9, 2025
375cfad
Merge branch 'dev' of https://github.com/FlorianButz/desktop into Flo…
mr-cheffy Nov 9, 2025
254d83c
fix: correct color conversion, add stylesheet implementation
FlorianButz Nov 9, 2025
54c04f4
fix: Fixed crashes on sub-document contexts, b=no-bug, c=no-component
mr-cheffy Nov 12, 2025
43eedfa
feat: core zap implementation
FlorianButz Dec 4, 2025
e8e02a1
chore: use proper actor communication
FlorianButz Dec 5, 2025
d825ca0
feat: workspace color syncing
FlorianButz Jan 1, 2026
1264f8a
chore: Small cleanup
FlorianButz Jan 1, 2026
b9a9833
Merge branch 'dev' of https://github.com/zen-browser/desktop into dev
FlorianButz Jan 1, 2026
cafe950
chore: update to using isolated includes file
FlorianButz Jan 1, 2026
1b604d4
feat: Dont render color changes on anonymous documents and run format…
mr-cheffy Jan 1, 2026
db53eca
feat: Simplify data browsing context fetching, b=no-bug, c=mods
mr-cheffy Jan 2, 2026
9573fed
feat: Improve detecting anon content, b=no-bug, c=workspaces
mr-cheffy Jan 2, 2026
9b6077d
Merge branch 'dev' into dev
mr-cheffy Jan 11, 2026
1f21965
chore: Update patches, b=no-bug, c=no-component
mr-cheffy Jan 11, 2026
06e7e39
chore: Update boost saving to use JSONFile
FlorianButz Jan 12, 2026
108b6c8
Merge branch 'dev' into dev
FlorianButz Jan 13, 2026
394c629
feat: Add CodeMirror integration for custom css
FlorianButz Jan 25, 2026
5873e8f
Merge branch 'dev' of https://github.com/FlorianButz/desktop into dev
FlorianButz Jan 25, 2026
a8f364f
feat: Account for tabs on right when opening boost window
FlorianButz Jan 25, 2026
d192ce8
Merge branch 'zen-browser:dev' into dev
FlorianButz Jan 27, 2026
337ee11
chore: Fix syntax error, Rename file, Add license
FlorianButz Jan 27, 2026
c6f86bb
chore: Fix icon location
FlorianButz Jan 28, 2026
bd50dc1
feat: Fix color picker knob, Add animation
FlorianButz Jan 30, 2026
e53552d
feat: Update zap mode
FlorianButz Jan 31, 2026
c7d2bce
chore: Simplify temporary unzap logic
FlorianButz Jan 31, 2026
a881512
feat: Add dissolve effect on zap
FlorianButz Jan 31, 2026
c0bb7cb
Merge branch 'dev' into dev
mr-cheffy Feb 3, 2026
51ed9cb
Merge branch 'dev' into dev
mr-cheffy Feb 4, 2026
b01efd3
feat: Mark some variables as constant, b=no-bug, c=no-component
mr-cheffy Feb 4, 2026
acba3e7
Merge branch 'dev' of https://github.com/FlorianButz/desktop into Flo…
mr-cheffy Feb 4, 2026
fd652c8
chore: Resolve requested changes
FlorianButz Feb 5, 2026
711f8b4
chore: Cleanup stylesheet, Remove unecessary !important
FlorianButz Feb 5, 2026
7d68634
chore: Run lint:fix
FlorianButz Feb 5, 2026
6cdf8ef
Merge branch 'zen-browser:dev' into dev
FlorianButz Feb 5, 2026
4e4d23d
chore: Improve available screen calculation when opening editor
FlorianButz Feb 9, 2026
221a22d
chore: Fix observers in boosts parent actor
FlorianButz Feb 9, 2026
2a12411
feat: Improve code editor, Add localizations
FlorianButz Feb 12, 2026
6348918
feat: Platform specific style adjustments
FlorianButz Feb 13, 2026
0e37b4f
feat: Improve unzap buttons
FlorianButz Feb 13, 2026
0cbfb89
chore: Update CSS editor icons to use nucleo icons
FlorianButz Feb 13, 2026
cfd68f8
chore: Fix styling issues, Fix using system font
FlorianButz Feb 13, 2026
bcb9afa
chore: Fix SelectorComponent positioning in zap mode
FlorianButz Feb 13, 2026
585c605
feat: Add exporting / importing boost functionality
FlorianButz Feb 14, 2026
494f342
chore: Revert deleting brush.svg
FlorianButz Feb 14, 2026
e8b2b42
chore: Remove editor window animation
FlorianButz Feb 14, 2026
09a359b
chore: Improve readability for boost import/export
FlorianButz Feb 14, 2026
8f05215
feat: Bring back boost names
FlorianButz Feb 14, 2026
3091a47
chore: Fix zen content check in SelectorComponent
FlorianButz Feb 14, 2026
9a54f87
chore: Fix CSS editor open direction on multi monitor setup
FlorianButz Feb 14, 2026
df61461
feat: Add context menu for boost actions
FlorianButz Feb 14, 2026
abb3d4a
chore: Fix actor communication, Fix TabSwitch close lifecycle
FlorianButz Feb 14, 2026
11d3a5d
feat: Refactor to multiple boost per domain system
FlorianButz Feb 16, 2026
1d66b14
chore: Run lint:fix
FlorianButz Feb 16, 2026
73b3046
feat: Add mica support for the editor, Update close icon
FlorianButz Feb 16, 2026
0ca2f05
chore: Adjust styling to be responsive
FlorianButz Feb 16, 2026
7a6cc02
chore: Fix resetBoost type error
FlorianButz Feb 17, 2026
6af20c6
chore: Moving js modules to .zen.boosts
FlorianButz Feb 17, 2026
9551332
Merge branch 'dev' into dev
FlorianButz Feb 17, 2026
c4d11a3
chore: Optimize dissolve effect, Fix zap mode breaking bug
FlorianButz Feb 18, 2026
af4f370
chore: Run lint:fix
FlorianButz Feb 18, 2026
7f1b42b
feat: Improve selector generation
FlorianButz Feb 19, 2026
e2d326e
feat: Add tests for the selector generator
FlorianButz Feb 19, 2026
51cffe6
chore: Fix boost tests
FlorianButz Feb 19, 2026
57d054c
feat: Implement smart invert, b=no-bug, c=no-component
mr-cheffy Feb 22, 2026
efa6a09
Merge branch 'dev' of https://github.com/FlorianButz/desktop into Flo…
mr-cheffy Feb 22, 2026
3e9769f
Merge branch 'dev' into dev
mr-cheffy Feb 22, 2026
01d7ba6
chore: Fix lint errors
FlorianButz Feb 23, 2026
479cf92
chore: Fix close button padding on mac
FlorianButz Feb 23, 2026
f5e546c
Merge branch 'dev' into dev
mr-cheffy Feb 23, 2026
878844b
chore: Fix undefined errors
FlorianButz Feb 23, 2026
cbb694e
chore: Fix type error when opening boost editor
FlorianButz Feb 23, 2026
ca7f3c3
feat: Use of prompt instead of inline textfield for renaming boosts
FlorianButz Feb 23, 2026
4daf020
chore: Rename gradient generator update to be generic
FlorianButz Feb 23, 2026
d1aa10e
chore: Fix minor issues that broke everything
FlorianButz Feb 23, 2026
8a74d2a
chore: Fix ZenZapOverlayChild not setting text content properly
FlorianButz Feb 23, 2026
b63e340
chore: Fix lint errors
FlorianButz Feb 23, 2026
ee76e65
chore: Remove unused animation, Reset smart invert when boost null
FlorianButz Feb 24, 2026
f4f59f3
chore: Fix not clearing ref to window and doc
FlorianButz Feb 24, 2026
a73a24d
chore: Fix bug when cleaning up dissolve effect
FlorianButz Feb 24, 2026
d45b877
chore: Remove dot animation because cheff said so
FlorianButz Feb 24, 2026
f5613a3
chore: Fix not sanitizing HTML
FlorianButz Feb 24, 2026
a39e7f1
Merge branch 'dev' into dev
mr-cheffy Feb 25, 2026
d96cbe4
fix: Fixed GTK windows, b=no-bug, c=no-component
mr-cheffy Feb 25, 2026
597fb8e
Merge branch 'dev' of https://github.com/FlorianButz/desktop into Flo…
mr-cheffy Feb 25, 2026
168d196
chore: Fix not opening boost editor as dialog
FlorianButz Feb 25, 2026
9bcfc18
chore: Change default contrast value to be lower
FlorianButz Feb 26, 2026
9bfbecd
feat: Fixed animations not colouring correctly, b=no-bug, c=no-component
mr-cheffy Feb 26, 2026
2e19b28
Merge branch 'dev' of https://github.com/FlorianButz/desktop into dev
FlorianButz Feb 26, 2026
0f2b7ad
chore: Update child actor to use windowGlobalChild instead
FlorianButz Feb 26, 2026
1977382
Merge branch 'dev' into dev
FlorianButz Feb 26, 2026
8e5873f
chore: Change to storing normalized dot pos
FlorianButz Feb 28, 2026
4a12abc
chore: Fix clamp function in backend
FlorianButz Feb 28, 2026
0dbfd21
feat: Separate boost data and user css
FlorianButz Mar 1, 2026
00ea0bd
Merge branch 'dev' into dev
mr-cheffy Mar 1, 2026
0c486e3
feat: Start deducing colors from browsing context, not pres shells, b…
mr-cheffy Mar 1, 2026
cd0a499
feat: Small changes to the UI, b=no-bug, c=no-component
mr-cheffy Mar 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions crowdin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@ files:
translation: browser/browser/preferences/zen-preferences.ftl
- source: en-US/browser/browser/zen-folders.ftl
translation: browser/browser/zen-folders.ftl
- source: en-US/browser/browser/zen-boosts.ftl
translation: browser/browser/zen-boosts.ftl
58 changes: 58 additions & 0 deletions locales/en-US/browser/browser/zen-boosts.ftl
Comment thread
FlorianButz marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

zen-boost-edit-rename =
.label = Rename Boost
zen-boost-edit-shuffle =
.label = Shuffle Vibes
zen-boost-edit-reset =
.label = Reset All Edits
zen-boost-edit-delete =
.label = Delete Boost
zen-boost-size = Size
zen-boost-zap = Zap
zen-boost-code = Code
zen-boost-back = Back
zen-boost-shuffle =
.tooltiptext = Shuffle Boost Settings
zen-boost-invert =
.tooltiptext = Smart Invert Colors
zen-boost-controls =
.tooltiptext = Advanced Color Controls
zen-boost-disable =
.tooltiptext = Disable Color Adjustments
zen-boost-text-case-toggle =
.tooltiptext = Toggle Text Case
zen-boost-css-picker =
.tooltiptext = Pick Selector
zen-boost-css-inspector =
.tooltiptext = Open Inspector
zen-bootst-color-contrast = Contrast
zen-bootst-color-brightness = Brightness
zen-bootst-color-original-saturation = Original Saturation
zen-add-zap-helper = Click elements on the page to <b>Zap</b> them
zen-remove-zap-helper = ← Click to Unzap
zen-select-this = Insert selector for this
zen-select-related = Insert selector for related
zen-select-cancel = Cancel
zen-zap-this = Zap this
zen-zap-related = Zap all related elements
zen-zap-cancel = Cancel
zen-zap-done = Done
zen-unzap-tooltip =
{
$elementCount ->
[0] No elements zapped
[1] { $elementCount } element zapped
*[other] { $elementCount } elements zapped
}
zen-boost-save =
.tooltiptext = Export Boost
zen-boost-load =
.tooltiptext = Import Boost
zen-panel-ui-boosts-exported-message = Boost exported!
zen-site-data-boosts = Boosts
zen-site-data-create-boost =
.tooltiptext = Create new boost
zen-boost-rename-boost-prompt = Rename Boost?
9 changes: 9 additions & 0 deletions prefs/zen/boosts.yaml
Comment thread
FlorianButz marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

- name: zen.boosts.enabled
value: "@IS_TWILIGHT@"

- name: zen.boosts.dissolve-on-zap
Comment thread
FlorianButz marked this conversation as resolved.
value: true
1 change: 1 addition & 0 deletions src/browser/base/content/zen-assets.jar.inc.mn
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@
#include ../../../zen/images/jar.inc.mn
#include ../../../zen/vendor/jar.inc.mn
#include ../../../zen/fonts/jar.inc.mn
#include ../../../zen/boosts/jar.inc.mn
#include ../../../zen/live-folders/jar.inc.mn
1 change: 1 addition & 0 deletions src/browser/base/content/zen-locales.inc.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
<link rel="localization" href="browser/zen-menubar.ftl"/>
<link rel="localization" href="browser/zen-vertical-tabs.ftl"/>
<link rel="localization" href="browser/zen-folders.ftl"/>
<link rel="localization" href="browser/zen-boosts.ftl"/>
<link rel="localization" href="browser/zen-live-folders.ftl"/>
</linkset>
14 changes: 14 additions & 0 deletions src/browser/base/content/zen-panels/site-data.inc
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,18 @@
data-l10n-id="unified-extensions-manage-extensions"
hidden="true" />
</vbox>
<vbox class="zen-site-data-section">
<hbox class="zen-site-data-section-header">
<label data-l10n-id="zen-site-data-boosts" flex="1" />
#if 0
<!-- This can later be used to open Zen Library on the Boosts tab to display a list of all boosts -->
<label data-l10n-id="zen-generic-more" id="zen-site-data-boosts-more" hidden="true" />
#endif
</hbox>
<vbox id="zen-site-data-boost-list">
<!-- settings will be inserted here -->
</vbox>
</vbox>
<vbox class="zen-site-data-section">
<hbox class="zen-site-data-section-header">
<label data-l10n-id="zen-site-data-settings" flex="1" />
Expand All @@ -87,6 +99,8 @@
<hbox id="zen-site-data-footer">
<toolbarbutton id="zen-site-data-security-info"
class="subviewbutton zen-interactive-button" />
<toolbarbutton id="zen-site-data-boost" data-l10n-id="zen-site-data-create-boost"
class="subviewbutton zen-interactive-button" />
<toolbarbutton id="zen-site-data-actions"
class="subviewbutton zen-interactive-button"
closemenu="none"
Expand Down
144 changes: 140 additions & 4 deletions src/browser/themes/shared/zen-icons/icons.css
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,21 @@
.close-icon,
.zen-glance-sidebar-close,
.zen-theme-picker-custom-list-item-remove,
#appMenu-quit-button2 {
#appMenu-quit-button2,
#zen-boost-delete {
list-style-image: url("close.svg") !important;
}

#PanelUI-zen-emojis-picker-none,
#zen-emojis-picker-none {
list-style-image: url("trash.svg");
}

#PanelUI-zen-gradient-generator-color-remove,
#zen-gradient-generator-color-remove {
list-style-image: url("unpin.svg") !important;
}

#PanelUI-zen-emojis-picker-none {
list-style-image: url("trash.svg");
}
Expand Down Expand Up @@ -90,7 +101,8 @@

#appMenu-zoom-controls,
#PanelUI-zen-gradient-generator-color-add,
#zen-site-data-new-addon-button {
#zen-site-data-new-addon-button,
.zen-create-new-boost {
list-style-image: url("plus.svg") !important;
}

Expand All @@ -115,7 +127,8 @@
}

.zen-current-workspace-indicator-chevron,
#PanelUI-zen-gradient-generator-color-page-right {
#PanelUI-zen-gradient-generator-color-page-right,
.zen-permission-popup-boost-editor-button {
list-style-image: url("arrow-right.svg");
}

Expand Down Expand Up @@ -410,7 +423,8 @@
}

.panel-header > .subviewbutton-back,
#PanelUI-zen-gradient-generator-color-page-left {
#PanelUI-zen-gradient-generator-color-page-left,
#zen-boost-back {
list-style-image: url("arrow-left.svg") !important;
}

Expand Down Expand Up @@ -502,6 +516,27 @@
&:is([open], [starred]) image {
list-style-image: url("permissions-fill.svg");
}
&[boosting] image {
color: var(--color-accent-primary);
list-style-image: url("permissions-fill.svg");
}

position: relative;
}

@media not (prefers-reduced-motion: reduce) {
#zen-site-data-icon-button[boosting]::after {
content: "";
position: absolute;
width: 100%;
height: 100%;
opacity: 1;
color: var(--color-accent-primary);
background: url("chrome://browser/content/zen-images/boost-indicator.svg") no-repeat;
transform: translateX(-20%);
z-index: 0;
pointer-events: none;
}
}

.geo-icon {
Expand Down Expand Up @@ -876,6 +911,31 @@
fill: currentColor;
}

#zen-site-data-boost {
-moz-context-properties: fill, fill-opacity;
fill: currentColor;
border-radius: 6px;
appearance: none;
padding: 6px 10px 6px 10px;

position: relative;

list-style-image: url("paintbrush.svg");

& .toolbarbutton-text {
display: none;
}

@media -moz-pref("zen.boosts.enabled", false) {
display: none;
}
}

#zen-site-data-boost[boosting],
.boost-brush {
list-style-image: url("paintbrush-fill.svg");
}

#zen-site-data-security-info {
-moz-context-properties: fill, fill-opacity;
fill: currentColor;
Expand Down Expand Up @@ -935,3 +995,79 @@
list-style-image: url("link.svg");
fill-opacity: 0.65;
}

#zen-boost-text-case-toggle {
list-style-image: url("text-title-case.svg");
}

#zen-boost-text-case-toggle[case-mode="uppercase"] {
list-style-image: url("text-uppercase.svg");
}

#zen-boost-text-case-toggle[case-mode="lowercase"] {
list-style-image: url("text-lowercase.svg");
}

#zen-boost-code {
list-style-image: url("brackets-curly.svg");
}

#zen-boost-zap {
list-style-image: url("bolt.svg");
}

#zen-boost-controls {
list-style-image: url("sliders.svg");
}

#zen-boost-invert {
list-style-image: url("lightbulb.svg");
}

#zen-boost-disable {
list-style-image: url("block.svg");
}

#zen-boost-close {
list-style-image: url("close.svg");

@media (-moz-platform: macos) {
list-style-image: url("close-filled-round.svg");
}

@media (-moz-platform: windows) {
list-style-image: none;
list-style: none;
display: inline-flex;

&::before {
font-family: "Segoe Fluent Icons", "Segoe MDL2 Assets";
content: "\e8bb";
font-size: 12px;
}
}
}

#zen-boost-magic-theme {
list-style-image: url("sparkles.svg");
}

#zen-boost-shuffle {
list-style-image: url("arrow-rotate-anticlockwise.svg");
}

#zen-boost-css-picker {
list-style-image: url("eyedropper.svg");
}

#zen-boost-css-inspector {
list-style-image: url("hammer.svg");
}

#zen-boost-save {
list-style-image: url("downloads.svg");
}

#zen-boost-load {
list-style-image: url("open.svg");
}
Loading