├── .yarnrc.yml ├── CREDITS ├── LEPTON ├── LICENSE ├── __tests__ ├── _has.test.scss ├── accent_color.test.scss ├── color_scheme.test.scss ├── each.test.scss ├── example.scss ├── list.test.scss ├── media.test.scss ├── mode.test.scss ├── moz_document.test.scss ├── native_menu.test.scss ├── one_liner.test.scss ├── option.test.scss ├── os.test.scss ├── scss.spec.js └── theme.test.scss ├── css ├── leptonChrome.css ├── leptonChromeESR.css ├── leptonContent.css └── leptonContentESR.css ├── docs ├── Omni_ja.md ├── Preference.md ├── Project_Structure.md ├── README.md ├── Restrictions.md ├── Rules.md └── Smart_Bookmarks.md ├── icons ├── add-device.svg ├── addons-logo.svg ├── align-distribute-top.svg ├── align-space-evenly-vertical.svg ├── apps-list-detail.svg ├── arrow-between-down.svg ├── arrow-between-up.svg ├── arrow-repeat-all.svg ├── arrow-sort-down-lines.svg ├── arrow-swap.svg ├── arrow-up-exclamation.svg ├── auto-fit-width.svg ├── blank.svg ├── blue-berror.svg ├── book-add.svg ├── book.svg ├── bookmark-multiple.svg ├── bookmarks-toolbar-alt.svg ├── bookmarks-toolbar.svg ├── bookmarksMenu-open.svg ├── bookmarksMenu-open2.svg ├── bookmarksToolbar-open-alt.svg ├── bookmarksToolbar-open.svg ├── broom.svg ├── bug.svg ├── calendar-agenda.svg ├── characterEncoding.svg ├── chat-sparkle.svg ├── checkmark-circle.svg ├── close-duplicate-tabs-photon.svg ├── close-duplicate-tabs.svg ├── close-tab-photon.svg ├── close-tab.svg ├── close-window.svg ├── code-text.svg ├── code.svg ├── command-console.svg ├── command-eyedropper.svg ├── command-frames.svg ├── command-pick.svg ├── command-responsivemode.svg ├── container-openin-16.svg ├── content-view.svg ├── copy-select.svg ├── dashboard.svg ├── datarestore.svg ├── datastore.svg ├── developer.svg ├── device-desktop.svg ├── device-phone.svg ├── device-tablet.svg ├── device-tv.svg ├── device-vr.svg ├── dismiss-filled.svg ├── document-css.svg ├── document-endnote.svg ├── document-landscape-split-hint.svg ├── document-search.svg ├── drawer-arrow-download.svg ├── edit-active.svg ├── edit-copy.svg ├── edit-cut.svg ├── edit-paste-go.svg ├── edit-paste-search.svg ├── edit-paste.svg ├── enter-fullscreen.svg ├── eraser.svg ├── error-connection-failure.svg ├── error-malformed-url.svg ├── error-server-not-found.svg ├── error-session-restore.svg ├── error-tab-crashed.svg ├── exit-fullscreen.svg ├── eye-hide.svg ├── eye-show.svg ├── eye-tracking-off.svg ├── filter-dismiss.svg ├── filter-reload.svg ├── find-again.svg ├── firefox-view.svg ├── flame.svg ├── fluid.svg ├── folder-globe.svg ├── folder-open.svg ├── folder.svg ├── forget.svg ├── highlight.svg ├── history-reverse.svg ├── horizon-night.svg ├── horizon-sunrise.svg ├── identity-icons-brand.svg ├── image-add.svg ├── image-alt-text.svg ├── image-arrow-counterclockwise.svg ├── image-copy.svg ├── image.svg ├── import-export.svg ├── import.svg ├── ion.svg ├── key-multiple.svg ├── link-no-tracking.svg ├── link-square.svg ├── link.svg ├── lock-closed.svg ├── mail-inbox-all.svg ├── mail-inbox.svg ├── mail.svg ├── menu-check.svg ├── merge.svg ├── movetowindow-16.svg ├── new-tab-forward-photon.svg ├── new-tab-forward.svg ├── new-tab-multiple-photon.svg ├── new-tab-multiple.svg ├── new-tab-photon.svg ├── new-tab-skip-forward-photon.svg ├── new-tab-skip-forward.svg ├── new-tab.svg ├── no-search-results.svg ├── organization-horizontal.svg ├── panelarrow-vertical-reverse.svg ├── panelarrow-vertical.svg ├── password-hide.svg ├── password.svg ├── paste-text.svg ├── paste-url.svg ├── paste.svg ├── performance.svg ├── pin-tab.svg ├── play-fill.svg ├── play.svg ├── plug-disconnected.svg ├── pocket-outline.svg ├── private-favicon.svg ├── profiler-stopwatch.svg ├── pulse-square.svg ├── pwa-install.svg ├── pwa-launch.svg ├── pwa-manage.svg ├── pwa-remove.svg ├── quit.svg ├── radio.svg ├── redo.svg ├── refresh-cw.svg ├── relay-logo.svg ├── reload-auto.svg ├── reload.svg ├── resize-image.svg ├── resize.svg ├── restore-session.svg ├── screenshot-1.svg ├── screenshot.svg ├── select-all-on.svg ├── send-to-device.svg ├── send.svg ├── share.svg ├── shield-task.svg ├── sign-out.svg ├── sort.svg ├── star-line-horizontal.svg ├── synced-tabs.svg ├── tab-audio-blocked-circle-12.svg ├── tab-audio-muted-small.svg ├── tab-audio-playing-small.svg ├── tab-bottom-corner-left-australis-clipped.svg ├── tab-bottom-corner-left-australis.svg ├── tab-bottom-corner-left-chrome-clipped.svg ├── tab-bottom-corner-left-chrome.svg ├── tab-bottom-corner-left-chromeLegacy-clipped.svg ├── tab-bottom-corner-left-chromeLegacy.svg ├── tab-bottom-corner-left-edge-clipped.svg ├── tab-bottom-corner-left-edge.svg ├── tab-bottom-corner-left-wave-clipped.svg ├── tab-bottom-corner-left-wave.svg ├── tab-bottom-corner-left.svg ├── tab-bottom-corner-right-australis-cilpped.svg ├── tab-bottom-corner-right-australis.svg ├── tab-bottom-corner-right-chrome-clipped.svg ├── tab-bottom-corner-right-chrome.svg ├── tab-bottom-corner-right-chromeLegacy-clipped.svg ├── tab-bottom-corner-right-chromeLegacy.svg ├── tab-bottom-corner-right-edge-clipped.svg ├── tab-bottom-corner-right-edge.svg ├── tab-bottom-corner-right-wave-clipped.svg ├── tab-bottom-corner-right-wave.svg ├── tab-bottom-corner-right.svg ├── tab-copy-photon.svg ├── tab-copy.svg ├── tab-desktop-multiple-bottom.svg ├── tab-desktop-multiple.svg ├── tab-multiple.svg ├── tab-photon.svg ├── tab-unload-photon.svg ├── tab-unload.svg ├── tab.svg ├── tag-open.svg ├── tag.svg ├── tetris-app.svg ├── text-direction-horizontal-ltr.svg ├── text-number-format.svg ├── text-proofing-tools.svg ├── text-sort-ascending.svg ├── time-picker.svg ├── timer10.svg ├── tool-accessibility.svg ├── toolbar.svg ├── toolbarButton-download.svg ├── toolbarButton-editorHighlight.svg ├── toolbarButton-upload.svg ├── toolbox.svg ├── translations.svg ├── undo.svg ├── unpin-tab.svg ├── update-circle.svg ├── vertical-line.svg ├── video-clip.svg ├── video-snapshot.svg ├── video.svg ├── weather-snowflake.svg ├── welcome-back.svg ├── whatsnew.svg ├── window-dev-tools.svg ├── window.svg └── wrench-filled.svg ├── install.ps1 ├── install.sh ├── package.json ├── src ├── autohide │ ├── _back_button.scss │ ├── _bookmarkbar.scss │ ├── _common.scss │ ├── _fill_urlbar.scss │ ├── _forward_button.scss │ ├── _index.scss │ ├── _infobar.scss │ ├── _navbar.scss │ ├── _page_action.scss │ ├── _sidebar.scss │ ├── _tab.scss │ ├── _tabbar.scss │ ├── _toolbar_overlap.scss │ └── sidebar │ │ ├── _overlap.scss │ │ └── _static.scss ├── bookmarkbar │ ├── _index.scss │ └── _multi_row.scss ├── centered │ ├── _bookmarkbar.scss │ ├── _index.scss │ ├── _tab.scss │ ├── _urlbar.scss │ └── tab │ │ ├── _content.scss │ │ ├── _label.scss │ │ └── _layout.scss ├── combined │ ├── _back_forward_button.scss │ ├── _combined_circle_button.scss │ ├── _home_button.scss │ ├── _index.scss │ └── _reload_button.scss ├── compatibility │ ├── _index.scss │ ├── _os.scss │ ├── _others.scss │ └── _theme.scss ├── contents │ ├── _activity_stream.scss │ ├── _compatibility.scss │ ├── _context_menu.scss │ ├── _dark_mode.scss │ ├── _downloads.scss │ ├── _error_page.scss │ ├── _monospace.scss │ ├── _proton_color.scss │ ├── _proton_contents.scss │ ├── _rounding.scss │ ├── _video_player.scss │ ├── dark_mode │ │ ├── _accounts_com.scss │ │ ├── _addons_org.scss │ │ └── _support_org.scss │ └── proton_contents │ │ ├── _about_cache.scss │ │ ├── _about_checkerboard.scss │ │ ├── _about_memory.scss │ │ ├── _about_others.scss │ │ ├── _about_plugins.scss │ │ ├── _about_preferences.scss │ │ ├── _about_processes.scss │ │ ├── _directory_view.scss │ │ ├── _field_border.scss │ │ ├── _proton_commons.scss │ │ └── _view_source.scss ├── counter │ ├── _bookmark_menu.scss │ ├── _index.scss │ └── _tab.scss ├── decoration │ ├── _animate.scss │ ├── _animate_common.scss │ ├── _cursor.scss │ ├── _download_panel.scss │ ├── _field_border.scss │ ├── _index.scss │ ├── _panel_arrow.scss │ └── _panel_button_separator.scss ├── fullscreen │ ├── _index.scss │ ├── _overlap.scss │ └── _show_bookmarkbar.scss ├── hidden │ └── _index.scss ├── icons │ ├── _1.25px_stroke.scss │ ├── _activity_stream.scss │ ├── _addon_page.scss │ ├── _context_menu.scss │ ├── _global_menu.scss │ ├── _global_menubar.scss │ ├── _index.scss │ ├── _library.scss │ ├── _login_page.scss │ ├── _panel.scss │ ├── _shared.scss │ ├── context_menu │ │ ├── _content_area.scss │ │ ├── _downloads.scss │ │ ├── _others.scss │ │ ├── _place.scss │ │ └── _tab_toolbar.scss │ ├── fork_browsers │ │ ├── _floorp.scss │ │ ├── _index.scss │ │ ├── _tor_browser.scss │ │ └── _waterfox.scss │ └── layout │ │ ├── _activity_stream.scss │ │ ├── _bookmark_menu.scss │ │ ├── _menu.scss │ │ ├── _menu_common.scss │ │ ├── _menu_contents.scss │ │ └── _panel.scss ├── leptonChrome.scss ├── leptonChromeESR.scss ├── leptonChromeNightly.scss ├── leptonContent.scss ├── leptonContentESR.scss ├── leptonContentNightly.scss ├── library │ ├── _chrome.scss │ ├── _contents.scss │ ├── _folder_icons.scss │ ├── _menubar.scss │ ├── _proton.scss │ └── _proton_contents.scss ├── navbar │ ├── _as_sidebar.scss │ └── _index.scss ├── others │ ├── _findbar_floating_on_top.scss │ └── _index.scss ├── padding │ ├── _bookmark_menu.scss │ ├── _bookmarkbar.scss │ ├── _drag_space.scss │ ├── _first_tab.scss │ ├── _global_menubar.scss │ ├── _index.scss │ ├── _infobar.scss │ ├── _menu.scss │ ├── _navbar.scss │ ├── _panel.scss │ ├── _panel_header.scss │ ├── _popup_panel.scss │ ├── _tab_padding.scss │ ├── _tabbar_height.scss │ ├── _tabbar_width.scss │ ├── _toolbar_button.scss │ ├── _urlbar.scss │ ├── _urlview_expanding.scss │ └── _urlview_result.scss ├── panel │ ├── _full_width_padding.scss │ ├── _full_width_separator.scss │ ├── _index.scss │ └── _remove_strip.scss ├── rounding │ ├── _dialog.scss │ ├── _index.scss │ ├── _library.scss │ ├── _round.scss │ └── _square.scss ├── sidebar │ ├── _index.scss │ └── _overlap.scss ├── tab │ ├── _clipped_tab.scss │ ├── _connect_to_window.scss │ ├── _container_tab.scss │ ├── _crashed_tab.scss │ ├── _index.scss │ ├── _newtab_button.scss │ ├── _picture_in_picture_tab.scss │ ├── _selected_tab.scss │ ├── _sound_tab.scss │ ├── _unload_tab.scss │ ├── _unselected_tab.scss │ ├── clipped_tab │ │ ├── _always_show_tab_icon.scss │ │ ├── _letters_cleary.scss │ │ ├── _pinned_close_button.scss │ │ └── _show_close_button_at_hover.scss │ ├── newtab_button │ │ ├── _looks_like_tab.scss │ │ ├── _proton_like_button.scss │ │ └── _smaller_button.scss │ ├── selected_tab │ │ ├── _bold.scss │ │ ├── _bottom_rounded_corner.scss │ │ ├── _bottom_rounded_corner_others.scss │ │ ├── _box_shadow.scss │ │ ├── _color_like_toolbar.scss │ │ ├── _multi_selected.scss │ │ ├── _photon_like_contextline.scss │ │ └── _supernova_like_contextline.scss │ ├── sound_tab │ │ ├── _hide_label.scss │ │ ├── _show_label.scss │ │ └── _show_with_favicons.scss │ └── unselected_tab │ │ ├── _bar_separator.scss │ │ ├── _dynamic_separator.scss │ │ └── _static_separator.scss ├── tabbar │ ├── _as_titlebar.scss │ ├── _fill_width.scss │ ├── _index.scss │ ├── _layout.scss │ ├── _multi_row.scss │ ├── _on_bottom.scss │ ├── _one_liner.scss │ ├── _unscroll.scss │ └── layout │ │ ├── _navbar_padding.scss │ │ ├── _window_control.scss │ │ └── _window_control_size.scss ├── theme │ ├── _built_in.scss │ ├── _dark_blue_accent.scss │ ├── _dark_blue_color.scss │ ├── _fully_color.scss │ ├── _fully_dark.scss │ ├── _index.scss │ ├── _monospace.scss │ ├── _non_native_menu.scss │ ├── _private.scss │ ├── _proton_chrome.scss │ ├── _proton_color.scss │ ├── _system_default_theme.scss │ ├── _transparent.scss │ ├── _waterfox.scss │ ├── proton_chrome │ │ ├── _cert.scss │ │ ├── _library_popup.scss │ │ ├── _page_info.scss │ │ ├── _proton_commons.scss │ │ └── _sanitize_everything.scss │ ├── system_default_theme │ │ ├── _gtk.scss │ │ ├── _mac.scss │ │ ├── _urlbar_focus_color.scss │ │ ├── _win10.scss │ │ └── _win7.scss │ └── transparent │ │ ├── _general.scss │ │ ├── _general_element_background.scss │ │ ├── _mac.scss │ │ ├── _menu.scss │ │ ├── _panel.scss │ │ ├── _win11.scss │ │ └── _win7_8.scss ├── urlview │ ├── _always_show_page_actions.scss │ ├── _as_launcher.scss │ ├── _focus_item_border.scss │ ├── _full_width_padding.scss │ ├── _go_button_when_typing.scss │ ├── _iconbox_as_separator.scss │ ├── _index.scss │ └── _move_icon_to_left.scss └── utils │ ├── _accent_color.scss │ ├── _color_scheme.scss │ ├── _each.scss │ ├── _has.scss │ ├── _list.scss │ ├── _media.scss │ ├── _mode.scss │ ├── _moz_box.scss │ ├── _moz_document.scss │ ├── _native_menu.scss │ ├── _one_liner.scss │ ├── _option.scss │ ├── _os.scss │ ├── _proton_elements.scss │ ├── _theme.scss │ └── _window_control.scss ├── user.js ├── userChrome.css ├── userContent.css ├── waterfox.sh └── yarn.lock /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /LEPTON: -------------------------------------------------------------------------------- 1 | [Info] 2 | Branch=master 3 | -------------------------------------------------------------------------------- /__tests__/_has.test.scss: -------------------------------------------------------------------------------- 1 | @use "true" as *; 2 | @use "example" as *; 3 | @use "../src/utils/has" as *; 4 | 5 | @include test-module("`:has()` selector test [mix]") { 6 | @include test("exist `:has()`") { 7 | @include assert { 8 | @include output { 9 | @include Has { 10 | @include example; 11 | } 12 | } 13 | @include expect { 14 | @supports selector(:has(a)) { 15 | @include example; 16 | } 17 | } 18 | } 19 | } 20 | @include test("don't exist `:has()`") { 21 | @include assert { 22 | @include output { 23 | @include NotHas { 24 | @include example; 25 | } 26 | } 27 | @include expect { 28 | @supports not selector(:has(a)) { 29 | @include example; 30 | } 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /__tests__/example.scss: -------------------------------------------------------------------------------- 1 | @mixin example_tag() { 2 | body { 3 | @content; 4 | } 5 | } 6 | @mixin example_property() { 7 | font-size: 16px; 8 | } 9 | 10 | @mixin example() { 11 | @include example_tag { 12 | @include example_property; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /__tests__/scss.spec.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | const sassTrue = require("sass-true"); 3 | const glob = require("fast-glob"); 4 | 5 | // https://www.educative.io/blog/sass-tutorial-unit-testing-with-sass-true 6 | // Find all of the Sass files that end in `*.test.scss` in any directory of this project. 7 | // I use path.resolve because True requires absolute paths to compile test files. 8 | const pattern = path.resolve(process.cwd(), "__tests__/**/*.test.scss"); 9 | const sassTestFiles = glob.sync([pattern]); 10 | 11 | // Run True on every file found with the describe and it methods provided 12 | sassTestFiles.forEach(file => { 13 | sassTrue.runSass( 14 | {describe, it}, 15 | file 16 | ); 17 | }); 18 | -------------------------------------------------------------------------------- /icons/add-device.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/align-distribute-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/align-space-evenly-vertical.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/apps-list-detail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/arrow-between-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/arrow-between-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/arrow-repeat-all.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/arrow-sort-down-lines.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/arrow-swap.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/arrow-up-exclamation.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/auto-fit-width.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/blank.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /icons/book-add.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/book.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/bookmark-multiple.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/bookmarks-toolbar-alt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/bookmarks-toolbar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/bookmarksMenu-open.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/bookmarksMenu-open2.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/bookmarksToolbar-open-alt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/bookmarksToolbar-open.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/broom.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/bug.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/calendar-agenda.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/chat-sparkle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/checkmark-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/close-duplicate-tabs-photon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/close-duplicate-tabs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/close-tab-photon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/close-tab.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/close-window.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/code-text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/code.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/command-console.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/command-eyedropper.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/command-frames.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/command-pick.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/command-responsivemode.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/container-openin-16.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/content-view.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/copy-select.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/dashboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/datarestore.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/datastore.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/developer.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/device-desktop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/device-phone.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/device-tablet.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/device-tv.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/device-vr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/dismiss-filled.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/document-endnote.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/document-landscape-split-hint.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/document-search.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/drawer-arrow-download.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/edit-active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/edit-copy.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/edit-cut.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/edit-paste-go.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/edit-paste.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/enter-fullscreen.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/eraser.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/exit-fullscreen.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/eye-hide.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/eye-show.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/filter-dismiss.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/filter-reload.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/find-again.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/firefox-view.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/fluid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/folder-open.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/forget.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/highlight.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/history-reverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/image-add.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/image-alt-text.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/image-arrow-counterclockwise.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/image-copy.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/image.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/import-export.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /icons/import.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/ion.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/key-multiple.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/link-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/link.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/lock-closed.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/mail-inbox-all.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/mail-inbox.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/mail.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/menu-check.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/merge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/movetowindow-16.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/new-tab-forward-photon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/new-tab-forward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/new-tab-multiple-photon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/new-tab-multiple.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/new-tab-photon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/new-tab-skip-forward-photon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/new-tab-skip-forward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/new-tab.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/organization-horizontal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/panelarrow-vertical-reverse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /icons/panelarrow-vertical.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /icons/password-hide.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/password.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/performance.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/pin-tab.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /icons/play-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/play.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/plug-disconnected.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/pocket-outline.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /icons/profiler-stopwatch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/pulse-square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/pwa-install.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/pwa-launch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/pwa-manage.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/pwa-remove.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/quit.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/radio.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /icons/redo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/refresh-cw.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/reload-auto.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /icons/reload.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /icons/resize-image.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/resize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/restore-session.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/screenshot.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/select-all-on.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/send-to-device.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/send.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/share.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /icons/shield-task.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/sign-out.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/sort.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /icons/star-line-horizontal.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/tab-audio-blocked-circle-12.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /icons/tab-audio-muted-small.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /icons/tab-audio-playing-small.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left-australis-clipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left-australis.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left-chrome-clipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left-chrome.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left-chromeLegacy-clipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left-chromeLegacy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left-edge-clipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left-edge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left-wave-clipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left-wave.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right-australis-cilpped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right-australis.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right-chrome-clipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right-chrome.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right-chromeLegacy-clipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right-chromeLegacy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right-edge-clipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right-edge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right-wave-clipped.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right-wave.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /icons/tab-bottom-corner-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /icons/tab-copy-photon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/tab-copy.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/tab-desktop-multiple-bottom.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/tab-desktop-multiple.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/tab-multiple.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/tab-photon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/tab-unload-photon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/tab-unload.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/tab.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/tag-open.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/tag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/tetris-app.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/text-direction-horizontal-ltr.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/text-sort-ascending.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/toolbar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/toolbarButton-download.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/toolbarButton-editorHighlight.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /icons/toolbarButton-upload.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/toolbox.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/translations.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/undo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/unpin-tab.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /icons/update-circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /icons/vertical-line.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/video-clip.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/video-snapshot.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/video.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/weather-snowflake.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /icons/whatsnew.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/window-dev-tools.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /icons/window.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /icons/wrench-filled.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/autohide/_back_button.scss: -------------------------------------------------------------------------------- 1 | :root:not([customizing="true"]) #back-button[disabled="true"] { 2 | margin-left: var(--uc-toolbarbutton-hide-size) !important; 3 | opacity: 0 !important; 4 | pointer-events: none; 5 | } 6 | 7 | @include Animate { 8 | #back-button { 9 | transition-property: background-color, opacity, margin-left !important; 10 | } 11 | #back-button[disabled="true"] { 12 | transition: background-color 1s var(--animation-easing-function), 13 | opacity 1s var(--animation-easing-function), 14 | margin-left 0.5s ease !important; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/autohide/_forward_button.scss: -------------------------------------------------------------------------------- 1 | :root:not([customizing="true"]) #forward-button[disabled="true"] { 2 | margin-left: var(--uc-toolbarbutton-hide-size) !important; 3 | opacity: 0 !important; 4 | pointer-events: none; 5 | } 6 | 7 | @include Animate { 8 | #forward-button { 9 | transition-property: background-color, opacity, margin-left !important; 10 | } 11 | #forward-button[disabled="true"] { 12 | transition: background-color 1s var(--animation-easing-function), 13 | opacity 1s var(--animation-easing-function), 14 | margin-left 0.5s ease !important; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/autohide/_sidebar.scss: -------------------------------------------------------------------------------- 1 | // Refer variable `src/sidebar/overlap` 2 | 3 | @include Option("userChrome.autohide.sidebar") { 4 | #sidebar-box { 5 | min-width: var(--uc-sidebar-width) !important; 6 | max-width: var(--uc-sidebar-width) !important; 7 | } 8 | 9 | :root[inFullscreen="true"] #sidebar-box { 10 | min-width: var(--uc-sidebar-activate-width) !important; 11 | max-width: var(--uc-sidebar-activate-width) !important; 12 | } 13 | 14 | @include Option("userChrome.sidebar.overlap") { 15 | @import "sidebar/overlap"; 16 | } 17 | @include NotOption("userChrome.sidebar.overlap") { 18 | @import "sidebar/static"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/autohide/_tab.scss: -------------------------------------------------------------------------------- 1 | .tabbrowser-tab:not([multiselected]) .tab-content:not(:hover):not([selected]) { 2 | @include NotOption("userChrome.autohide.tab.opacity") { 3 | @include NotOption("userChrome.autohide.tab.blur") { 4 | margin-bottom: -64px; 5 | } 6 | } 7 | @include Option("userChrome.autohide.tab.opacity") { 8 | opacity: 0%; 9 | } 10 | @include Option("userChrome.autohide.tab.blur") { 11 | filter: blur(8px); 12 | } 13 | 14 | @include Animate { 15 | transition-timing-function: var(--animation-easing-function); 16 | transition-duration: 0.2s; 17 | transition-delay: 600ms; 18 | &:is(:hover, :focus-within) { 19 | transition-delay: 0s; 20 | } 21 | 22 | @include NotOption("userChrome.autohide.tab.opacity") { 23 | @include NotOption("userChrome.autohide.tab.blur") { 24 | transition-property: margin-bottom; 25 | } 26 | } 27 | @include Option("userChrome.autohide.tab.opacity") { 28 | transition-property: opacity; 29 | } 30 | @include Option("userChrome.autohide.tab.blur") { 31 | transition-property: filter; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/bookmarkbar/_index.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.bookmarkbar.multi_row") { 2 | @import "_multi_row"; 3 | } 4 | -------------------------------------------------------------------------------- /src/centered/_bookmarkbar.scss: -------------------------------------------------------------------------------- 1 | #PlacesToolbarItems { 2 | display: flex !important; 3 | justify-content: safe center !important; 4 | } 5 | -------------------------------------------------------------------------------- /src/centered/_index.scss: -------------------------------------------------------------------------------- 1 | /*= Centered - Tab ===========================================================*/ 2 | @import "tab"; 3 | 4 | /*= Centered - URL Bar =======================================================*/ 5 | @include Option("userChrome.centered.urlbar") { 6 | @import "urlbar"; 7 | } 8 | 9 | /*= Centered - Bookmark Bar ==================================================*/ 10 | @include Option("userChrome.centered.bookmarkbar") { 11 | @import "bookmarkbar"; 12 | } 13 | -------------------------------------------------------------------------------- /src/centered/_tab.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.centered.tab") { 2 | @import "tab/layout"; 3 | 4 | @include NotOption("userChrome.centered.tab.label") { 5 | @import "tab/content"; 6 | } 7 | @include Option("userChrome.centered.tab.label") { 8 | @import "tab/label"; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/centered/_urlbar.scss: -------------------------------------------------------------------------------- 1 | // Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/urlbar_centered_text.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 | #urlbar:not([focused]) { 5 | #urlbar-input, 6 | .urlbar-input { 7 | text-align: center !important; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/centered/tab/_content.scss: -------------------------------------------------------------------------------- 1 | .tab-icon-stack { 2 | margin-inline-start: auto; 3 | } 4 | .tab-label-container { 5 | max-width: min-content; 6 | margin-inline-end: auto; 7 | } 8 | @include Option("userChrome.tab.close_button_at_hover") { 9 | .tabbrowser-tab:not(:hover, [pinned]) > .tab-stack > .tab-content > .tab-close-button { 10 | padding-inline-start: 6px !important; /* Original: 0px */ 11 | width: 24px !important; /* Original: 17px */ 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/centered/tab/_label.scss: -------------------------------------------------------------------------------- 1 | /* Based on https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/centered_tab_label.css */ 2 | .tab-label-container { 3 | display: grid; 4 | } 5 | .tab-label, 6 | .tab-secondary-label { 7 | overflow: clip; 8 | 9 | // #761 10 | justify-self: safe center; 11 | align-self: safe center; 12 | } 13 | 14 | .tabbrowser-tab[selected]:not(:hover) .tab-label-container:not([textoverflow]), 15 | .tabbrowser-tab:not(:hover,[pinned]) .tab-label-container:not([textoverflow]) { 16 | margin-inline-end: 5px; // userChrome.tab.close_button_at_hover 6px - 1px 17 | } 18 | -------------------------------------------------------------------------------- /src/centered/tab/_layout.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.centered.tab.label") { 2 | .tabbrowser-tab[selected]:not(:hover) .tab-label-container:not([textoverflow]), 3 | .tabbrowser-tab:not(:hover,[pinned]) .tab-label-container:not([textoverflow]) { 4 | margin-inline-end: 5px; 5 | } 6 | } 7 | 8 | @include Option("userChrome.tab.close_button_at_hover") { 9 | #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not(:hover,[pinned]) .tab-label-container:not([textoverflow]) { 10 | margin-inline-end: 1px; 11 | } 12 | #tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([selected]):not(:hover, [pinned]) .tab-label-container label { 13 | padding-inline-end: 18px; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/combined/_home_button.scss: -------------------------------------------------------------------------------- 1 | @import "combined_circle_button"; 2 | 3 | #nav-bar-customization-target > #home-button { 4 | position: relative; 5 | @include circle_button_shape; 6 | 7 | &:hover > .toolbarbutton-icon { 8 | @include circle_button_background_hover; 9 | } 10 | &:hover:active > .toolbarbutton-icon { 11 | @include circle_button_background_active; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/combined/_reload_button.scss: -------------------------------------------------------------------------------- 1 | // Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/reload_button_in_urlbar.css made available under Mozilla Public License v. 2.0 2 | // See the above repository for updates as well as full license text. 3 | #urlbar { 4 | padding-right: calc(var(--uc-toolbarbutton-size) - (var(--urlbar-margin-inline) / 2)); 5 | } 6 | 7 | #nav-bar-customization-target > #stop-reload-button { 8 | z-index: 3; 9 | position: relative; 10 | 11 | --toolbarbutton-hover-background: var(--urlbar-box-hover-bgcolor); 12 | color: var(--urlbar-box-hover-text-color) !important; 13 | 14 | margin-left: calc( -1 * (var(--uc-toolbarbutton-size) + var(--urlbar-margin-inline))); 15 | } 16 | 17 | #nav-bar-customization-target > #stop-reload-button > .toolbarbutton-1 > .toolbarbutton-icon { 18 | width: var(--uc-urlbar-icon-size) !important; 19 | height: var(--uc-urlbar-icon-size) !important; 20 | 21 | padding: var(--urlbar-icon-padding) !important; 22 | } 23 | -------------------------------------------------------------------------------- /src/compatibility/_index.scss: -------------------------------------------------------------------------------- 1 | /*= Theme - Compatibility ====================================================*/ 2 | @include Option("userChrome.compatibility.theme") { 3 | @import "theme"; 4 | } 5 | 6 | /*= OS - Compatibility =======================================================*/ 7 | @include Option("userChrome.compatibility.os") { 8 | @import "os"; 9 | } 10 | 11 | /*= Others - Compatibility ===================================================*/ 12 | @import "others"; 13 | -------------------------------------------------------------------------------- /src/compatibility/_others.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.compatibility.panel_cutoff") { 2 | #appMenu-popup panelview { 3 | width: 24.5em !important; /* can modify panel width, Original: 22.5em */ 4 | } 5 | } 6 | 7 | @include Option("userChrome.compatibility.navbar_top_border") { 8 | #nav-bar { 9 | box-shadow: none !important; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/contents/_dark_mode.scss: -------------------------------------------------------------------------------- 1 | @include Dark { 2 | @import "dark_mode/addons_org"; 3 | @import "dark_mode/support_org"; 4 | @import "dark_mode/accounts_com"; 5 | 6 | @include Option("userContent.page.dark_mode.pdf") { 7 | @include moz-document(unobservable-document) { 8 | @include moz-document(regexp "^(?!.*\\.pdf\\?n).*") { 9 | #outerContainer { 10 | --sidebaritem-bg-color: #38383D; 11 | --uc-pdf-dark-filter: grayscale(10%) invert(90%); 12 | } 13 | 14 | #sidebarContainer > #sidebarContent > #thumbnailView .thumbnailImage { 15 | filter: var(--uc-pdf-dark-filter); 16 | box-shadow: 0 0 0 1px hsla(0, 0%, 100%, 0.5), 0 2px 8px hsla(0, 0%, 100%, 0.3) !important; 17 | } 18 | #viewerContainer > #viewer > .page > .canvasWrapper > canvas { 19 | filter: var(--uc-pdf-dark-filter); 20 | } 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/contents/_downloads.scss: -------------------------------------------------------------------------------- 1 | @include moz-document(url-prefix "about:downloads") { 2 | @include Animate { 3 | @include Option("userChrome.decoration.download_panel") { 4 | @import "../decoration/download_panel"; 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/contents/_monospace.scss: -------------------------------------------------------------------------------- 1 | @include moz-document( 2 | url-prefix "about:", 3 | url-prefix "chrome://", 4 | regexp "^((jar:)?file:\/\/\/).*\/$" 5 | ) { 6 | @import "../theme/monospace"; 7 | } 8 | -------------------------------------------------------------------------------- /src/contents/proton_contents/_about_cache.scss: -------------------------------------------------------------------------------- 1 | @include moz-document(url-prefix "about:cache") { 2 | table { 3 | padding: 0 !important; 4 | } 5 | 6 | th, 7 | td { 8 | padding: 4px !important; 9 | text-align: match-parent !important; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/contents/proton_contents/_about_checkerboard.scss: -------------------------------------------------------------------------------- 1 | @include moz-document(url-prefix "about:checkerboard") { 2 | #canvas { 3 | border: 1px solid var(--in-content-border-color) !important; 4 | } 5 | #excludePageFromZoom { 6 | vertical-align: bottom !important; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/contents/proton_contents/_about_memory.scss: -------------------------------------------------------------------------------- 1 | @include moz-document(url-prefix "about:memory") { 2 | .opsRow, 3 | .section { 4 | background-color: var(--in-content-box-background) !important; 5 | color: var(--in-content-page-color) !important; 6 | } 7 | .opsRowLabel input { 8 | vertical-align: bottom !important; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/contents/proton_contents/_about_others.scss: -------------------------------------------------------------------------------- 1 | @include moz-document(url-prefix "about:support") { 2 | #reset-box-button { 3 | --in-content-focus-outline-color: var(--in-content-danger-button-background) !important; 4 | background-color: var(--in-content-danger-button-background) !important; 5 | color: var(--in-content-primary-button-text-color) !important; 6 | border-color: var(--in-content-primary-button-border-color) !important; 7 | 8 | &:enabled:hover { 9 | background-color: var(--in-content-danger-button-background-hover) !important; 10 | color: var(--in-content-primary-button-text-color-hover) !important; 11 | border-color: var(--in-content-primary-button-border-hover) !important; 12 | } 13 | &:enabled:hover:active { 14 | background-color: var(--in-content-danger-button-background-active) !important; 15 | color: var(--in-content-primary-button-text-color-active) !important; 16 | border-color: var(--in-content-primary-button-border-active) !important; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/contents/proton_contents/_about_plugins.scss: -------------------------------------------------------------------------------- 1 | @include moz-document(url-prefix "about:plugins") { 2 | .notice { 3 | background: var(--in-content-box-background) !important; 4 | border: 1px solid var(--in-content-border-color) !important; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/contents/proton_contents/_about_processes.scss: -------------------------------------------------------------------------------- 1 | @include moz-document( 2 | url-prefix "about:processes", 3 | url-prefix "about:performance" 4 | ) { 5 | td.type.favicon[style*='background-image: url("chrome://global/skin/icons/link.svg");'] { 6 | background-image: url("../icons/link.svg") !important; 7 | } 8 | 9 | .profiler-icon { 10 | cursor: pointer; 11 | background-image: url("../icons/performance.svg") !important; 12 | background-repeat: no-repeat !important; 13 | background-position: center !important; 14 | @include NotOption("userChrome.rounding.square_button") { 15 | border-radius: 8px !important; 16 | } 17 | 18 | // #960 19 | color: inherit !important; 20 | } 21 | } 22 | 23 | @include moz-document(url-prefix "about:profiling") { 24 | .perf-intro-icon { 25 | background-image: url("../icons/performance.svg") !important; 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /src/contents/proton_contents/_directory_view.scss: -------------------------------------------------------------------------------- 1 | @include moz-document( 2 | url-prefix "about:sync-log", 3 | regexp "^(((jar:)?file:\/\/\/)|(chrome:\/\/)).*\/$" 4 | ) { 5 | body { 6 | background-color: var(--in-content-box-background) !important; 7 | margin: 4em auto !important; /* Override to default */ 8 | } 9 | thead a { 10 | color: var(--in-content-page-color) !important; 11 | } 12 | td ::before { 13 | vertical-align: top !important; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/contents/proton_contents/_field_border.scss: -------------------------------------------------------------------------------- 1 | @include moz-document(url-prefix "about:") { 2 | html|input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]):not(#newtab-search-text):hover, 3 | html|textarea:hover, 4 | xul|search-textbox:hover { 5 | border-color: var(--in-content-focus-outline-color) !important; 6 | transition: border-color 0.5s var(--animation-easing-function); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/counter/_bookmark_menu.scss: -------------------------------------------------------------------------------- 1 | menupopup[placespopup="true"] > menu.bookmark-item > .menu-right { 2 | counter-reset: bookmark-counts 0; 3 | } 4 | menupopup[placespopup="true"] > menu.bookmark-item::after { 5 | @include InlineBox; 6 | content: "(" counter(bookmark-counts) ")"; 7 | } 8 | 9 | menupopup[placespopup="true"] > menu.bookmark-item > .menu-iconic-highlightable-text, 10 | menupopup[placespopup="true"] > menu.bookmark-item > .menu-accel-container, 11 | menupopup[placespopup="true"] > menu.bookmark-item > .menu-right { 12 | @include BoxOrder(2); 13 | } 14 | 15 | menu.bookmark-item > menupopup[placespopup="true"] > .bookmark-item { 16 | counter-increment: bookmark-counts; 17 | } 18 | -------------------------------------------------------------------------------- /src/counter/_index.scss: -------------------------------------------------------------------------------- 1 | /*= Counter for Tab ==========================================================*/ 2 | @include Option("userChrome.counter.tab") { 3 | @import "tab"; 4 | } 5 | 6 | /*= Counter for Bookmark menu ================================================*/ 7 | @include Option("userChrome.counter.bookmark_menu") { 8 | @import "bookmark_menu"; 9 | } 10 | -------------------------------------------------------------------------------- /src/decoration/_animate_common.scss: -------------------------------------------------------------------------------- 1 | $toolbox-transition-margin-top: margin-top 1s ease; 2 | $toolbox-transition-margin-top-fullscreen: margin-top 1.3s var(--animation-easing-function) 50ms; 3 | $toolbox-transition-margin-bottom: margin-bottom var(--uc-autohide-toolbar-speed) var(--animation-easing-function) var(--uc-autohide-toolbar-delay); 4 | $toolbox-transition-background-color: background-color 0.2s var(--animation-easing-function); 5 | $toolbox-transition-background-color-inactive: background-color 0.5s var(--animation-easing-function); 6 | -------------------------------------------------------------------------------- /src/decoration/_download_panel.scss: -------------------------------------------------------------------------------- 1 | /* Accent Color for downloaded item */ 2 | #downloadsListBox .download-state[exists] .downloadDetails { 3 | color: var(--button-primary-bgcolor); 4 | &.downloadDetailsHover { 5 | color: var(--button-primary-hover-bgcolor); 6 | } 7 | } 8 | 9 | /* File moved or missing */ 10 | #downloadsListBox .download-state:not([exists], [state="0"]) { 11 | .downloadTarget { 12 | text-decoration: line-through; 13 | text-decoration-color: color-mix(in srgb, currentColor 65%, transparent); 14 | &:hover { 15 | text-decoration: none; 16 | } 17 | } 18 | .downloadTypeIcon { 19 | filter: grayscale(100%) !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/decoration/_panel_arrow.scss: -------------------------------------------------------------------------------- 1 | #appMenu-popup { 2 | background-image: url("../icons/panelarrow-vertical.svg"); 3 | background-repeat: no-repeat; 4 | background-position-x: right 10px; 5 | background-position-y: top; 6 | 7 | -moz-context-properties: fill, stroke; 8 | fill: var(--panel-background); 9 | stroke: var(--panel-border-color); 10 | 11 | &[side="top"] { 12 | margin-top: -8px !important; /* Original: -4px */ 13 | padding-top: 4px; 14 | } 15 | &[side="bottom"] { 16 | background-image: url("../icons/panelarrow-vertical-reverse.svg"); 17 | background-position-y: bottom; 18 | 19 | margin-bottom: -8px !important; /* Original: -4px */ 20 | padding-bottom: 4px; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/decoration/_panel_button_separator.scss: -------------------------------------------------------------------------------- 1 | :root:not([chromehidden~="toolbar"]) #PanelUI-button { 2 | // Original: not include at [uidensity=compact] 3 | margin-inline-start: 3px; 4 | padding-inline-start: 2px; 5 | border-inline-start: 1px solid; 6 | border-image: linear-gradient( 7 | transparent 4px, 8 | var(--toolbarseparator-color) 4px, 9 | var(--toolbarseparator-color) calc(100% - 4px), 10 | transparent calc(100% - 4px) 11 | ); 12 | border-image-slice: 1; 13 | } 14 | -------------------------------------------------------------------------------- /src/fullscreen/_index.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.fullscreen.overlap") { 2 | @include Option("browser.fullscreen.autohide") { 3 | @import "overlap"; 4 | } 5 | } 6 | 7 | @include Option("userChrome.fullscreen.show_bookmarkbar") { 8 | @import "show_bookmarkbar"; 9 | } 10 | -------------------------------------------------------------------------------- /src/fullscreen/_overlap.scss: -------------------------------------------------------------------------------- 1 | :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #navigator-toolbox { 2 | position: fixed !important; /* Needed for content to take up entire height */ 3 | z-index: 1000 !important; /* Puts the UI above the content */ 4 | 5 | &:is(:hover, :focus-within) { 6 | margin-top: 0 !important; 7 | } 8 | } 9 | 10 | :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) :-moz-any(#navigator-toolbox, #titlebar, #toolbar-menubar, #TabsToolbar, #nav-bar, #PersonalToolbar) { 11 | width: 100%; /* Makes the UI take up the entire width */ 12 | } 13 | 14 | :root[sizemode="fullscreen"]:not([inDOMFullscreen="true"]) #urlbar:popover-open { 15 | // Prevent URLbar overlay #1028 16 | position: fixed !important; 17 | } 18 | 19 | @include OS($linux) { 20 | /* Fix transparent background */ 21 | :root:is([tabsintitlebar], [customtitlebar])[sizemode="fullscreen"]:not([inDOMFullscreen="true"])#{$not_lwtheme} #TabsToolbar { 22 | appearance: auto !important; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/fullscreen/_show_bookmarkbar.scss: -------------------------------------------------------------------------------- 1 | :root:not([sizemode="fullscreen"]) #PersonalToolbar[initialized]:not([collapsed="true"]), 2 | :root[sizemode="fullscreen"] #PersonalToolbar[initialized] { 3 | visibility: unset !important; /* Makes the bookmarks toolbar visible if enabled */ 4 | } 5 | -------------------------------------------------------------------------------- /src/icons/_1.25px_stroke.scss: -------------------------------------------------------------------------------- 1 | #firefox-view-button { 2 | list-style-image: url("../icons/firefox-view.svg") !important; 3 | } 4 | #reset-pbm-toolbar-button { 5 | list-style-image: url("../icons/flame.svg") !important; 6 | } 7 | #translations-button-icon { 8 | list-style-image: url("../icons/translations.svg") !important; 9 | } 10 | 11 | .tabbrowser-tab:is( 12 | [image="chrome://global/skin/icons/performance.svg"], 13 | [image="chrome://devtools/skin/images/tool-profiler.svg"] 14 | ) .tab-icon-image { 15 | content: url("../icons/performance.svg") !important; 16 | } 17 | 18 | .tabbrowser-tab:is( 19 | [image="chrome://global/skin/icons/developer.svg"] 20 | ) .tab-icon-image { 21 | content: url("../icons/developer.svg") !important; 22 | } 23 | 24 | .tabbrowser-tab:is( 25 | [image="chrome://browser/skin/controlcenter/dashboard.svg"] 26 | ) .tab-icon-image { 27 | content: url("../icons/dashboard.svg") !important; 28 | } 29 | -------------------------------------------------------------------------------- /src/icons/_context_menu.scss: -------------------------------------------------------------------------------- 1 | /** Context Menu - Icons ******************************************************/ 2 | @import "context_menu/tab_toolbar.scss"; 3 | @import "context_menu/content_area.scss"; 4 | @import "context_menu/downloads"; 5 | @import "context_menu/place"; 6 | @import "context_menu/others"; 7 | -------------------------------------------------------------------------------- /src/icons/_login_page.scss: -------------------------------------------------------------------------------- 1 | .menuitem-export { 2 | background-image: url("../icons/toolbarButton-download.svg") !important; 3 | } 4 | -------------------------------------------------------------------------------- /src/icons/_shared.scss: -------------------------------------------------------------------------------- 1 | @mixin initIcons() { 2 | --uc-folder-icon: url("chrome://global/skin/icons/folder.svg"); 3 | @include Option("userChrome.icon.library") { 4 | --uc-folder-icon: url("../icons/folder.svg"); 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/icons/fork_browsers/_index.scss: -------------------------------------------------------------------------------- 1 | /*= Waterfox =================================================================*/ 2 | @import "waterfox"; 3 | 4 | /*= Tor Browser ==============================================================*/ 5 | @import "tor_browser"; 6 | 7 | /*= Floorp Browser ===========================================================*/ 8 | @import "floorp"; 9 | -------------------------------------------------------------------------------- /src/icons/fork_browsers/_tor_browser.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.icon.panel") { 2 | #appMenuNewIdentity{ 3 | list-style-image: url("chrome://browser/skin/new_identity.svg"); 4 | } 5 | #appMenuNewCircuit { 6 | list-style-image: url("chrome://browser/skin/new_circuit.svg"); 7 | } 8 | #appMenu_torBrowserUserManual { 9 | list-style-image: url("chrome://browser/skin/onion.svg"); 10 | } 11 | } 12 | 13 | @include Option("userChrome.icon.menu") { 14 | #menu_newIdentity { 15 | --menuitem-image: url("chrome://browser/skin/new_identity.svg"); 16 | } 17 | #menu_newCircuit { 18 | --menuitem-image: url("chrome://browser/skin/new_circuit.svg"); 19 | } 20 | #torBrowserUserManual { 21 | --menuitem-image: url("chrome://browser/skin/onion.svg"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/icons/fork_browsers/_waterfox.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.icon.panel") { 2 | #appMenu-restart-button { 3 | list-style-image: url("../icons/refresh-cw.svg") !important; 4 | } 5 | } 6 | @include Option("userChrome.icon.menu") { 7 | #menu_FileRestartItem { 8 | --menuitem-image: url("../icons/refresh-cw.svg"); 9 | } 10 | 11 | #toggle_status-dummybar { 12 | --menuitem-image: url("../icons/pulse-square.svg"); 13 | } 14 | 15 | menuitem.privatetab-icon { 16 | --menuitem-image: url("../icons/private-favicon.svg"); 17 | } 18 | 19 | #sidebar_waterfox_net-menuitem-_openAllBookmarksWithStructure { 20 | --menuitem-image: url("../icons/organization-horizontal.svg"); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/icons/layout/_activity_stream.scss: -------------------------------------------------------------------------------- 1 | @import "./menu_common"; 2 | 3 | .context-menu-list .context-menu-item button { 4 | padding-inline-start: 0 !important; 5 | } 6 | 7 | .context-menu-list .context-menu-item button span { 8 | @include _layout_icon_menus; 9 | 10 | padding-inline-start: 24px; /* 16p + (4px * 2) */ 11 | background-position: var(--uc-menu-background-position, left) 4px center; 12 | &:dir(rtl) { 13 | --uc-menu-background-position: right; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/leptonChromeESR.scss: -------------------------------------------------------------------------------- 1 | @use "utils/mode"; 2 | 3 | @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); 4 | @namespace html url("http://www.w3.org/1999/xhtml"); 5 | 6 | @include mode.ESR; 7 | @import "leptonChrome"; 8 | -------------------------------------------------------------------------------- /src/leptonChromeNightly.scss: -------------------------------------------------------------------------------- 1 | @use "utils/mode"; 2 | 3 | @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); 4 | @namespace html url("http://www.w3.org/1999/xhtml"); 5 | 6 | @include mode.MEDIA_PREF; 7 | @import "leptonChrome"; 8 | 9 | /*@ DEPRECATED @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ 10 | @include mode.MEDIA_BOOL_PREF; 11 | @import "leptonChrome"; 12 | -------------------------------------------------------------------------------- /src/leptonContentESR.scss: -------------------------------------------------------------------------------- 1 | @use "utils/mode"; 2 | 3 | @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); 4 | @namespace html url("http://www.w3.org/1999/xhtml"); 5 | 6 | @include mode.ESR; 7 | @import "leptonContent"; 8 | -------------------------------------------------------------------------------- /src/leptonContentNightly.scss: -------------------------------------------------------------------------------- 1 | @use "utils/mode"; 2 | 3 | @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); 4 | @namespace html url("http://www.w3.org/1999/xhtml"); 5 | 6 | @include mode.MEDIA_PREF; 7 | @import "leptonContent"; 8 | 9 | /*@ DEPRECATED @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ 10 | @include mode.MEDIA_BOOL_PREF; 11 | @import "leptonContent"; 12 | -------------------------------------------------------------------------------- /src/library/_chrome.scss: -------------------------------------------------------------------------------- 1 | @import "folder_icons"; 2 | 3 | @include moz-document(url "chrome://browser/content/places/places.xhtml") { 4 | @include OS($linux) { 5 | @import "menubar"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/library/_contents.scss: -------------------------------------------------------------------------------- 1 | @include moz-document(url "chrome://browser/content/places/places.xhtml") { 2 | /** Library - Icons Replace *************************************************/ 3 | @include Option("userChrome.icon.library") { 4 | @import "folder_icons"; 5 | @import "menubar"; 6 | } 7 | 8 | @include OS($linux) { 9 | /*= Layout Fixes =========================================================*/ 10 | menupopup menu { 11 | padding-block: 4px; 12 | } 13 | 14 | .menu-right { 15 | width: 16px !important; /* Original: 1ex */ 16 | background-image: url("chrome://global/skin/icons/arrow-right.svg"); 17 | background-position: right center; 18 | } 19 | 20 | /*= Proton ===============================================================*/ 21 | @include Option("userContent.page.proton") { 22 | @import "proton"; 23 | @import "proton_contents"; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/navbar/_index.scss: -------------------------------------------------------------------------------- 1 | /*= Nav Bar - Navbar comabine with sidebar===================================*/ 2 | @include Option("userChrome.navbar.as_sidebar") { 3 | @import "as_sidebar"; 4 | } 5 | -------------------------------------------------------------------------------- /src/others/_index.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.findbar.floating_on_top") { 2 | @import "findbar_floating_on_top"; 3 | } 4 | -------------------------------------------------------------------------------- /src/padding/_bookmark_menu.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | --bookmark-menu-padding: 3px; 3 | } 4 | :root[uidensity="compact"] { 5 | --bookmark-menu-padding: 1.5px; 6 | } 7 | @include Option("userChrome.padding.menu_compact") { 8 | :root { 9 | --bookmark-menu-padding: 2px; 10 | } 11 | :root[uidensity=compact] { 12 | --bookmark-menu-padding: 0px; 13 | } 14 | } 15 | 16 | :root:not([uidensity="touch"]) #BMB_bookmarksPopup .subviewbutton, 17 | :root:not([uidensity="touch"]) #PlacesToolbar menupopup[placespopup] .bookmark-item, 18 | :root:not([uidensity="touch"]) #PlacesToolbar menupopup[placespopup] .openintabs-menuitem { 19 | padding-block: var(--bookmark-menu-padding) !important; 20 | } 21 | 22 | @include Option("userChrome.padding.menu_compact", "userChrome.padding.bookmark_menu.compact") { 23 | :root:not([uidensity="touch"]) #BMB_bookmarksPopup .bookmark-item, 24 | :root:not([uidensity="touch"]) #PlacesToolbar menupopup[placespopup] .bookmark-item { 25 | min-height: unset !important; /* Original: 24px */ 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/padding/_bookmarkbar.scss: -------------------------------------------------------------------------------- 1 | :root[uidensity="compact"] #PersonalToolbar toolbarbutton { 2 | margin-top: 0px !important; /* Original: 2px */ 3 | margin-bottom: 1px !important; 4 | } 5 | -------------------------------------------------------------------------------- /src/padding/_first_tab.scss: -------------------------------------------------------------------------------- 1 | /* for First Tab Space */ 2 | :root { 3 | --uc-space-left-tabbar: 8px; /* If the option is not specified, it is equivalent to 0px. */ 4 | } 5 | 6 | @include NotOption("userChrome.padding.first_tab.always") { 7 | :root:not([tabsintitlebar]):not([customtitlebar]) #tabbrowser-tabs:not([positionpinnedtabs]), 8 | :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs:not([positionpinnedtabs]) { 9 | padding-inline-start: var(--uc-space-left-tabbar) !important; 10 | } 11 | } 12 | 13 | @include Option("userChrome.padding.first_tab.always") { 14 | :root:not([tabsintitlebar]):not([customtitlebar]) #tabbrowser-tabs, 15 | :root:is([sizemode="maximized"], [sizemode="fullscreen"]) #tabbrowser-tabs { 16 | padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width, 0px) + var(--uc-space-left-tabbar)) !important; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/padding/_global_menubar.scss: -------------------------------------------------------------------------------- 1 | /* Vertical Align - Center & Height: 100% */ 2 | #main-menubar { 3 | @include BoxFlex(1, true); 4 | } 5 | 6 | /* Rounding */ 7 | #main-menubar > menu { 8 | border-radius: 4px; 9 | } 10 | 11 | /* Menubar item padding */ 12 | :root { 13 | --global-menubar-padding: 2px; 14 | } 15 | :root[uidensity="compact"] { 16 | --global-menubar-padding: 1px; 17 | } 18 | :root[uidensity="touch"] { 19 | --global-menubar-padding: 4px; 20 | } 21 | #main-menubar > menu { 22 | padding-block: var(--global-menubar-padding) !important; 23 | } 24 | 25 | /* Reduce items */ 26 | #main-menubar > menu > menupopup menuitem, 27 | #main-menubar > menu > menupopup menu { 28 | padding-block: var(--bookmark-menu-padding) !important; 29 | @include Option("userChrome.compatibility.os.win11") { 30 | --bookmark-menu-padding: 3px; 31 | &:is([type="checkbox"], [type="radio"]) { 32 | --bookmark-menu-padding: 0px; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/padding/_navbar.scss: -------------------------------------------------------------------------------- 1 | #nav-bar:not([customizing]) toolbarspring { 2 | min-width: 1px !important; 3 | max-width: 100px !important; 4 | } 5 | -------------------------------------------------------------------------------- /src/padding/_panel_header.scss: -------------------------------------------------------------------------------- 1 | .panel-header{ 2 | padding: unset !important; 3 | padding-top: 4px !important; 4 | } 5 | -------------------------------------------------------------------------------- /src/padding/_tab_padding.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.tab.lepton_like_padding", "userChrome.tab.photon_like_padding") { 2 | :root { 3 | // --tab-block-margin: New version of --proton-tab-block-margin 4 | --proton-tab-block-margin: var(--tab-block-margin) !important; /* Original: 4px, Legacy */ 5 | } 6 | :root[uidensity="touch"] { 7 | /* Like Original */ 8 | --tab-block-margin: 4px !important; 9 | } 10 | } 11 | 12 | @include Option("userChrome.tab.lepton_like_padding") { 13 | :root { 14 | --tab-block-margin: 2px !important; /* New version of --proton-tab-block-margin */ 15 | } 16 | 17 | // Floorp vertical tab sideeffect #766 18 | #tabbrowser-tabs[orient="vertical"] { 19 | --tab-block-margin: 4px !important; 20 | 21 | .tabbrowser-tab { 22 | margin-block: -1px !important; 23 | } 24 | } 25 | } 26 | @include Option("userChrome.tab.photon_like_padding") { 27 | :root { 28 | --tab-block-margin: 0px !important; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/padding/_toolbar_button.scss: -------------------------------------------------------------------------------- 1 | :root[uidensity="compact"] { 2 | --toolbarbutton-outer-padding: 2px !important; /* Original: 3px, General is 2px */ 3 | } 4 | 5 | @include Option("userChrome.padding.toolbar_button.compact") { 6 | :root { 7 | --toolbarbutton-inner-padding: var(--uc-small-toolbarbutton-inner-padding) !important; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/padding/_urlview_expanding.scss: -------------------------------------------------------------------------------- 1 | #urlbar[breakout][breakout-extend] > #urlbar-background { 2 | animation-name: none !important; 3 | box-shadow: 0 1px 4px rgba(0, 0, 0, .05) !important; 4 | } 5 | -------------------------------------------------------------------------------- /src/padding/_urlview_result.scss: -------------------------------------------------------------------------------- 1 | .urlbarView { 2 | margin-inline: 0 !important; 3 | width: 100% !important; 4 | } 5 | 6 | .urlbarView-row { 7 | padding-block: 0 !important; 8 | } 9 | -------------------------------------------------------------------------------- /src/panel/_full_width_padding.scss: -------------------------------------------------------------------------------- 1 | /* Original 2 | --arrowpanel-menuitem-margin: 0 8px; 3 | --arrowpanel-menuitem-padding-block: 8px; 4 | --arrowpanel-menuitem-padding-inline: 8px; 5 | --arrowpanel-menuitem-padding: var(--arrowpanel-menuitem-padding-block) var(--arrowpanel-menuitem-padding-inline); 6 | */ 7 | 8 | :root, 9 | :root:is([uidensity="compact"], [uidensity="touch"]) { 10 | --arrowpanel-menuitem-margin: 0 !important; 11 | --arrowpanel-menuitem-margin-inline: 0 !important; 12 | --arrowpanel-menuitem-padding-inline: calc(var(--arrowpanel-menuitem-padding-block) + 8px) !important; 13 | } 14 | -------------------------------------------------------------------------------- /src/panel/_full_width_separator.scss: -------------------------------------------------------------------------------- 1 | /* Full width separators */ 2 | :root { 3 | /* Original 4 | --panel-separator-margin-vertical: 4px; 5 | --panel-separator-margin-horizontal: 8px; 6 | --panel-separator-margin: var(--panel-separator-margin-vertical) var(--panel-separator-margin-horizontal); 7 | */ 8 | --panel-separator-margin-horizontal: 0 !important; 9 | } 10 | -------------------------------------------------------------------------------- /src/panel/_index.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.panel.remove_strip") { 2 | @import "remove_strip"; 3 | } 4 | 5 | @include Option("userChrome.panel.full_width_separator") { 6 | @import "full_width_separator"; 7 | } 8 | 9 | @include Option("userChrome.panel.full_width_padding") { 10 | @import "full_width_padding"; 11 | } 12 | -------------------------------------------------------------------------------- /src/panel/_remove_strip.scss: -------------------------------------------------------------------------------- 1 | #appMenu-fxa-separator { 2 | --panel-separator-zap-gradient: none; /* Original: linear-gradient(90deg, #9059FF 0%, #FF4AA2 52.08%, #FFBD4F 100%) */ 3 | } 4 | -------------------------------------------------------------------------------- /src/rounding/_dialog.scss: -------------------------------------------------------------------------------- 1 | @include Option("userChrome.rounding.square_dialog") { 2 | dialog, .dialogBox { 3 | border-radius: 0 !important; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/rounding/_index.scss: -------------------------------------------------------------------------------- 1 | /** Rounding ******************************************************************/ 2 | @import "round"; 3 | @import "square"; 4 | @import "dialog"; 5 | @import "library"; 6 | 7 | /* 8 | --toolbarbutton-border-radius: 4px; 9 | */ 10 | -------------------------------------------------------------------------------- /src/rounding/_library.scss: -------------------------------------------------------------------------------- 1 | /*= Library ==============================================================*/ 2 | @include Option("userChrome.rounding.square_button") { 3 | #placesToolbar > toolbarbutton, 4 | #placesMenu > menu, 5 | #editBookmarkPanelRows .expander-up, 6 | #editBookmarkPanelRows .expander-down { 7 | border-radius: 0 !important; 8 | } 9 | } 10 | @include Option("userChrome.rounding.square_field") { 11 | #searchFilter, 12 | #detailsPane html|input, 13 | #places input 14 | #editBMPanel_tagsSelectorRow > richlistbox { 15 | border-radius: 0 !important; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/rounding/_round.scss: -------------------------------------------------------------------------------- 1 | // #735 2 | .unified-extensions-item-menu-button.subviewbutton { 3 | border-radius: var(--arrowpanel-menuitem-border-radius) !important; 4 | } 5 | -------------------------------------------------------------------------------- /src/sidebar/_index.scss: -------------------------------------------------------------------------------- 1 | @import "overlap"; 2 | -------------------------------------------------------------------------------- /src/tab/_clipped_tab.scss: -------------------------------------------------------------------------------- 1 | /** Clipped tabs - Letters cleary *********************************************/ 2 | @include Option("userChrome.tab.letters_cleary") { 3 | @import "clipped_tab/letters_cleary"; 4 | } 5 | 6 | /** Clipped tabs - Show close button at hover *********************************/ 7 | @include Option("userChrome.tab.close_button_at_hover") { 8 | @import "clipped_tab/show_close_button_at_hover"; 9 | } 10 | 11 | /** Clipped tabs - Show close button at pinned tab ****************************/ 12 | @include Option("userChrome.tab.close_button_at_pinned") { 13 | @include NotOption("userChrome.tabbar.as_titlebar") { 14 | @import "clipped_tab/pinned_close_button"; 15 | } 16 | } 17 | 18 | /** Clipped tabs - Always show tab icon ***************************************/ 19 | @include Option("userChrome.tab.always_show_tab_icon") { 20 | @import "clipped_tab/always_show_tab_icon"; 21 | } 22 | -------------------------------------------------------------------------------- /src/tab/_crashed_tab.scss: -------------------------------------------------------------------------------- 1 | .tab-icon-image[crashed] { 2 | display: none !important; 3 | } 4 | -------------------------------------------------------------------------------- /src/tab/_newtab_button.scss: -------------------------------------------------------------------------------- 1 | /*= New tab button - Looks like tab ==========================================*/ 2 | @include Option("userChrome.tab.newtab_button_like_tab") { 3 | @import "newtab_button/looks_like_tab"; 4 | } 5 | 6 | /*= New tab button - Smaller button ==========================================*/ 7 | @include Option("userChrome.tab.newtab_button_smaller") { 8 | @import "newtab_button/smaller_button"; 9 | } 10 | 11 | /*= New tab button - Proton like button ======================================*/ 12 | @include Option("userChrome.tab.newtab_button_proton") { 13 | @import "newtab_button/proton_like_button"; 14 | } 15 | -------------------------------------------------------------------------------- /src/tab/_sound_tab.scss: -------------------------------------------------------------------------------- 1 | /*= Sound Tab - Hide Label ===================================================*/ 2 | @include Option("userChrome.tab.sound_hide_label") { 3 | @include NotOption("userChrome.tab.sound_show_label") { 4 | @import "sound_tab/hide_label"; 5 | } 6 | } 7 | 8 | /*= Sound Tab - Show Label ===================================================*/ 9 | @include Option("userChrome.tab.sound_show_label") { 10 | @import "sound_tab/show_label"; 11 | } 12 | 13 | /*= Sound Tab - Show with Favicons ===========================================*/ 14 | @include Option("userChrome.tab.sound_with_favicons") { 15 | @import "sound_tab/show_with_favicons"; 16 | } 17 | -------------------------------------------------------------------------------- /src/tab/_unload_tab.scss: -------------------------------------------------------------------------------- 1 | .tabbrowser-tab[pending] .tab-content { 2 | opacity: 0.7; 3 | } 4 | -------------------------------------------------------------------------------- /src/tab/_unselected_tab.scss: -------------------------------------------------------------------------------- 1 | /*= Unselected Tab - Dynamic Separator =======================================*/ 2 | @include Option("userChrome.tab.dynamic_separator") { 3 | @import "unselected_tab/dynamic_separator"; 4 | } 5 | 6 | /*= Unselected Tab - Static Separator ========================================*/ 7 | @include Option("userChrome.tab.static_separator") { 8 | @import "unselected_tab/static_separator"; 9 | } 10 | 11 | /*= Unselected Tab - Bar Separator ===========================================*/ 12 | @include Option("userChrome.tab.bar_separator") { 13 | @import "unselected_tab/bar_separator"; 14 | } 15 | -------------------------------------------------------------------------------- /src/tab/clipped_tab/_always_show_tab_icon.scss: -------------------------------------------------------------------------------- 1 | .tab-icon-image:not([src], [pinned], [crashed], [busy]) { 2 | @include InlineBox(true); 3 | } 4 | -------------------------------------------------------------------------------- /src/tab/newtab_button/_proton_like_button.scss: -------------------------------------------------------------------------------- 1 | :root:not([uidensity="touch"]) #tabs-newtab-button > .toolbarbutton-icon { 2 | --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 1px); 3 | } 4 | -------------------------------------------------------------------------------- /src/tab/newtab_button/_smaller_button.scss: -------------------------------------------------------------------------------- 1 | #tabs-newtab-button > .toolbarbutton-icon { 2 | // Not like tab, as button 3 | --tab-border-radius: var(--toolbarbutton-border-radius); 4 | margin-left: 1px; 5 | 6 | /* Original: calc((var(--tab-min-height) - 16px) / 2) = 10px */ 7 | --toolbarbutton-inner-padding: var(--uc-small-toolbarbutton-inner-padding); 8 | } 9 | -------------------------------------------------------------------------------- /src/tab/selected_tab/_bold.scss: -------------------------------------------------------------------------------- 1 | .tab-label:is([selected], [attention]) { 2 | @include Option("userChrome.tab.selected_bold") { 3 | font-weight: 600; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/tab/sound_tab/_hide_label.scss: -------------------------------------------------------------------------------- 1 | .tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]) { 2 | display: none !important; 3 | } 4 | -------------------------------------------------------------------------------- /src/tab/sound_tab/_show_label.scss: -------------------------------------------------------------------------------- 1 | .tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]){ 2 | @include Box(true); 3 | } 4 | -------------------------------------------------------------------------------- /src/tabbar/_fill_width.scss: -------------------------------------------------------------------------------- 1 | // Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_fill_available_width.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 | /* Why 100vw? Tab closing requires width animation to end and "none" can't be animated */ 5 | .tabbrowser-tab[fadein]:not([style^="max-width"]) { 6 | --tab-max-width: 100vw; 7 | max-width: var(--tab-max-width) !important; 8 | } 9 | -------------------------------------------------------------------------------- /src/theme/_built_in.scss: -------------------------------------------------------------------------------- 1 | // lwtheme-mozlightdark: Legacy - v96 2 | 3 | /*= Lightmode - Color darker =================================================*/ 4 | #{built-in-light-theme()} { 5 | --lwt-accent-color: rgb(229, 229, 235) !important; /* Original: rgb(240, 240, 244) */ 6 | } 7 | @include OS($win10, $mac) { 8 | #{selector.nest(built-in-light-theme(), "#navigator-toolbox")} { 9 | background-color: var(--lwt-accent-color) !important; 10 | } 11 | } 12 | 13 | /*= Darkmode - Color lighter =================================================*/ 14 | #{built-in-dark-theme()} { 15 | --toolbar-bgcolor: rgba(43, 42, 51, 5) !important; /* Original: rgba(43, 42, 51, 1) */ 16 | } 17 | -------------------------------------------------------------------------------- /src/theme/_monospace.scss: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: -moz-fixed; 3 | } 4 | -------------------------------------------------------------------------------- /src/theme/_proton_chrome.scss: -------------------------------------------------------------------------------- 1 | @import "proton_chrome/proton_commons"; 2 | @import "proton_chrome/cert"; 3 | @import "proton_chrome/page_info"; 4 | @import "proton_chrome/library_popup"; 5 | @import "proton_chrome/sanitize_everything"; 6 | -------------------------------------------------------------------------------- /src/theme/_system_default_theme.scss: -------------------------------------------------------------------------------- 1 | @import "system_default_theme/urlbar_focus_color"; 2 | @import "system_default_theme/win7"; 3 | @import "system_default_theme/win10"; 4 | @import "system_default_theme/gtk"; 5 | @import "system_default_theme/mac"; 6 | -------------------------------------------------------------------------------- /src/theme/_transparent.scss: -------------------------------------------------------------------------------- 1 | @include OS($win10, $win8, $win7, $linux) { 2 | @import "transparent/general"; 3 | } 4 | @include OS($win8, $win7, $linux) { 5 | @import "transparent/general_element_background"; 6 | } 7 | @include OS($win10) { 8 | @import "transparent/win11"; 9 | } 10 | @include OS($win8, $win7) { 11 | @import "transparent/win7_8"; 12 | } 13 | @include OS($mac) { 14 | @import "transparent/mac"; 15 | } 16 | -------------------------------------------------------------------------------- /src/theme/_waterfox.scss: -------------------------------------------------------------------------------- 1 | /* New Folder Button */ 2 | #editBMPanel_newFolderButton { 3 | appearance: none; 4 | border: 0; 5 | border-radius: 4px; 6 | background-color: var(--button-bgcolor); 7 | color: var(--button-color, inherit); 8 | font-weight: 600; 9 | min-width: 0; 10 | padding: 8px 16px; 11 | 12 | /* This button is deeper in the visual hierarchy than others (notably the 13 | buttons at the bottom of the panel), so it should be slightly smaller. */ 14 | font-size: 90%; 15 | 16 | /* This button needs to align with the tree above it. */ 17 | margin-inline-start: 4px; 18 | 19 | &:hover { 20 | background-color: var(--button-hover-bgcolor); 21 | &:active { 22 | background-color: var(--button-active-bgcolor); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/theme/proton_chrome/_library_popup.scss: -------------------------------------------------------------------------------- 1 | /*= Library Popup ============================================================*/ 2 | @include moz-document(url "chrome://browser/content/places/places.xhtml") { 3 | @include OS($linux) { 4 | @import "../../library/proton"; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/theme/proton_chrome/_sanitize_everything.scss: -------------------------------------------------------------------------------- 1 | #sanitizeEverythingWarningIcon { 2 | list-style-image: url("chrome://global/skin/icons/warning.svg") !important; 3 | -moz-context-properties: fill; 4 | fill: var(--uc-warning-icon-bgcolor); 5 | 6 | width: 48px; 7 | height: 48px; 8 | } 9 | -------------------------------------------------------------------------------- /src/theme/system_default_theme/_gtk.scss: -------------------------------------------------------------------------------- 1 | /*= GTK - URL View url accent color ==========================================*/ 2 | @include OS($linux) { 3 | @include not_lwtheme { 4 | .urlbarView-url { 5 | @include AccentColor { 6 | --urlbar-popup-url-color: #{$accentColor}; 7 | } 8 | } 9 | 10 | // Rollback to color #864 11 | --toolbar-field-background-color: Field !important; 12 | --toolbar-field-color: FieldText !important; 13 | --toolbar-field-border-color: ThreeDShadow !important; 14 | 15 | #urlbar-background, #searchbar { 16 | // Original: light-dark(rgba(0, 0, 0, .05), rgba(0, 0, 0, .3)) 17 | background-color: var(--toolbar-field-background-color) !important; 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/theme/system_default_theme/_urlbar_focus_color.scss: -------------------------------------------------------------------------------- 1 | /*= Common - URL Bar focus color =============================================*/ 2 | // TODO: `OS` Not covered case 3 | $_urlBarFocusSelector: ":root:is([tabsintitlebar], [customtitlebar]):not(:-moz-window-inactive)#{$not_lwtheme}"; 4 | $_urlBarFocusDarkSelector: ":root:is([tabsintitlebar], [customtitlebar])[lwt-default-theme-in-dark-mode]:not(:-moz-window-inactive)"; 5 | 6 | @media (-moz-windows-accent-color-in-titlebar), (-moz-gtk-csd-available) { 7 | /* URL Bar */ 8 | @include AccentColor { 9 | #{$_urlBarFocusSelector}, 10 | #{$_urlBarFocusDarkSelector} { 11 | --focus-outline-color: #{$accentColor} !important; 12 | } 13 | 14 | #{$_urlBarFocusSelector} #urlbar[open] > #urlbar-background, 15 | #{$_urlBarFocusDarkSelector} #urlbar[open] > #urlbar-background { 16 | border-color: color-mix( 17 | in srgb, 18 | $accentColor 50%, 19 | transparent 20 | ) !important; /* Like: --toolbar-field-focus-border-color */ 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/theme/transparent/_general.scss: -------------------------------------------------------------------------------- 1 | #main-window, 2 | #navigator-toolbox-background { 3 | background-color: transparent !important; 4 | appearance: auto !important; 5 | -moz-default-appearance: -moz-win-borderless-glass !important; 6 | } 7 | 8 | #navigator-toolbox { 9 | background-color: transparent !important; 10 | background-image: none !important; 11 | } 12 | 13 | #nav-bar, 14 | #PersonalToolbar { 15 | background-image: linear-gradient( 16 | var(--toolbar-bgcolor), 17 | var(--toolbar-bgcolor) 18 | ), var(--lwt-additional-images); 19 | background-repeat: repeat-x, var(--lwt-background-tiling); 20 | background-position: 0 0, var(--lwt-background-alignment); 21 | background-attachment: scroll, fixed !important; 22 | background-size: auto 100%, auto auto; 23 | } 24 | 25 | #appcontent { 26 | appearance: auto !important; 27 | -moz-default-appearance: -moz-win-exclude-glass !important; 28 | } 29 | -------------------------------------------------------------------------------- /src/theme/transparent/_mac.scss: -------------------------------------------------------------------------------- 1 | // https://github.com/te6-in/lepton-custom/blob/26110f0de64dd70d6396b5d101e1907cf441b110/te6-custom.css#L138 2 | // https://github.com/Tnings/MacosVibrant/blob/main/userChrome.css 3 | 4 | :root:not(:-moz-window-inactive) #navigator-toolbox { 5 | background-color: transparent !important; 6 | } 7 | 8 | #TabsToolbar, 9 | #titlebar, 10 | #nav-bar, 11 | #PersonalToolbar, 12 | #tabbrowser-tabs { 13 | // Before FF v103: -moz-mac-vibrant-titlebar-light, -moz-mac-vibrant-titlebar-dark 14 | -moz-appearance: -moz-mac-source-list !important; 15 | background-color: transparent !important; 16 | } 17 | 18 | /* De-emphasize tab icons and names when window is unfocused */ 19 | :root:-moz-window-inactive { 20 | .tab-content, 21 | #urlbar { 22 | opacity: 0.6; 23 | } 24 | 25 | #urlbar-background { 26 | background-color: transparent !important; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/theme/transparent/_menu.scss: -------------------------------------------------------------------------------- 1 | // Menu 2 | .menupopup-arrowscrollbox[part*="content"] { 3 | background: color-mix(in srgb, var(--menu-background-color, Menu) 90%, transparent) !important; 4 | } 5 | 6 | @include NativeMenu(true) { 7 | html#main-window #mainPopupSet menupopup:not(.in-menulist) { 8 | --menu-background-color: Menu !important; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/theme/transparent/_panel.scss: -------------------------------------------------------------------------------- 1 | panel[type="arrow"] { 2 | --panel-background: transparent !important; 3 | } 4 | 5 | panelview { 6 | background: color-mix(in srgb, var(--arrowpanel-background) 90%, transparent) !important; 7 | } 8 | -------------------------------------------------------------------------------- /src/theme/transparent/_win11.scss: -------------------------------------------------------------------------------- 1 | // @media (-moz-windows-accent-color-in-titlebar: 0) { 2 | // } 3 | 4 | :root, 5 | #navigator-toolbox { 6 | --lwt-accent-color: transparent !important; // Window 7 | --lwt-text-color: WindowText !important; 8 | } 9 | 10 | #titlebar, 11 | #toolbar-menubar, 12 | #TabsToolbar { 13 | .toolbarbutton-1 { 14 | --toolbarbutton-icon-fill: var(--lwt-text-color) !important; 15 | } 16 | } 17 | 18 | :root:not([sizemode="fullscreen"]) .titlebar-buttonbox-container .titlebar-button:not(.titlebar-close:hover) { 19 | list-style-image: none !important; 20 | } 21 | :root:not([sizemode="fullscreen"]) #toolbar-menubar[autohide="true"][inactive="true"] + #TabsToolbar .titlebar-button:is(.titlebar-close:hover) .toolbarbutton-icon { 22 | transform: translateY(-7px) !important; 23 | } 24 | -------------------------------------------------------------------------------- /src/theme/transparent/_win7_8.scss: -------------------------------------------------------------------------------- 1 | :root:not([lwtheme-image])#{$lwtheme} { 2 | background-color: transparent !important; 3 | background-image: none !important; 4 | } 5 | 6 | #main-menubar:not(:-moz-window-inactive) { 7 | color: var(--lwt-text-color) !important; 8 | } 9 | 10 | @include Dark { 11 | #toolbar-menubar:not(:-moz-window-inactive) { 12 | text-shadow: unset !important; 13 | } 14 | } 15 | 16 | @media (-moz-windows-default-theme) { 17 | #TabsToolbar { 18 | color: inherit !important; 19 | background-image: unset !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/urlview/_always_show_page_actions.scss: -------------------------------------------------------------------------------- 1 | #urlbar:not([breakout-extend="true"]) #pageActionButton { 2 | display: block !important; 3 | visibility: visible !important; 4 | } 5 | -------------------------------------------------------------------------------- /src/urlview/_focus_item_border.scss: -------------------------------------------------------------------------------- 1 | .urlbarView-row:not([type="tip"], [type="dynamic"])[selected] > .urlbarView-row-inner, 2 | .urlbarView-row-inner[selected] { 3 | box-shadow: 3px 0 var(--toolbar-field-focus-border-color) inset !important; 4 | } 5 | -------------------------------------------------------------------------------- /src/urlview/_go_button_when_typing.scss: -------------------------------------------------------------------------------- 1 | #urlbar-input-container[pageproxystate="invalid"] #urlbar-go-button { 2 | display: block !important; 3 | } 4 | -------------------------------------------------------------------------------- /src/urlview/_move_icon_to_left.scss: -------------------------------------------------------------------------------- 1 | .urlbarView-type-icon { 2 | min-width: 16px !important; 3 | height: 16px !important; 4 | margin-block: 0 !important; 5 | margin-inline-start: 0 !important; 6 | } 7 | 8 | .urlbarView-favicon { 9 | margin-inline-start: 20px !important; 10 | } 11 | -------------------------------------------------------------------------------- /src/utils/_accent_color.scss: -------------------------------------------------------------------------------- 1 | @use "option" as *; 2 | 3 | // Compatibility for accent color 4 | // https://github.com/mozilla/gecko-dev/commit/4c5f20179e8d3b963dc588efb9dc2c7b49e7bb31 5 | // 6 | // Need to hard coded #437 7 | $accentBorder: ActiveBorder; 8 | $accentColor: AccentColor; 9 | $accentTextColor: AccentColorText; 10 | 11 | @mixin AccentColor($mode: "-moz-accent-color") { 12 | @content; 13 | 14 | @include Option("userChrome.compatibility.accent_color") { 15 | $accentBorder: -moz-accent-color !global; 16 | 17 | @if $mode == "Highlight" { 18 | $accentColor: Highlight !global; 19 | $accentTextColor: HighlightText !global; 20 | } 21 | @else { 22 | $accentColor: -moz-accent-color !global; 23 | $accentTextColor: -moz-accent-color-foreground !global; 24 | } 25 | 26 | @content; 27 | } 28 | $accentBorder: ActiveBorder !global; 29 | $accentColor: AccentColor !global; 30 | $accentTextColor: AccentColorText !global; 31 | } 32 | -------------------------------------------------------------------------------- /src/utils/_color_scheme.scss: -------------------------------------------------------------------------------- 1 | @use "mode"; 2 | // -moz-toolbar-prefers-color-scheme is removed at v95, #250 3 | 4 | @mixin Dark() { 5 | @if mode.isESR() { 6 | @media (-moz-toolbar-prefers-color-scheme: dark), (prefers-color-scheme: dark) { 7 | @content; 8 | } 9 | } @else { 10 | @media (prefers-color-scheme: dark) { 11 | @content; 12 | } 13 | } 14 | } 15 | @mixin Light() { 16 | @if mode.isESR() { 17 | @media (-moz-toolbar-prefers-color-scheme: light), (prefers-color-scheme: light) { 18 | @content; 19 | } 20 | } @else { 21 | @media (prefers-color-scheme: light) { 22 | @content; 23 | } 24 | } 25 | } 26 | 27 | @mixin Contrast() { 28 | @media (prefers-contrast) { 29 | @content; 30 | } 31 | } 32 | 33 | @mixin NotContrast() { 34 | @media not all and (prefers-contrast) { 35 | @content; 36 | } 37 | } 38 | 39 | @mixin Animate() { 40 | @media (prefers-reduced-motion: no-preference) { 41 | @content; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/utils/_each.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | @use "sass:list"; 3 | @use "list" as list-utils; 4 | 5 | $_defaultOption: ( 6 | "separator": ", ", 7 | "quoted": false 8 | ); 9 | 10 | @mixin AtEach($name, $list, $prefix: null, $option: $_defaultOption) { 11 | $option: map.merge($_defaultOption, $option); 12 | $separator: map.get($option, "separator"); 13 | $quoted: map.get($option, "quoted"); 14 | $quoted: if($quoted, "\"", null); 15 | 16 | $listL: list.length($list); 17 | @if $listL >= 1 { 18 | $first: list.nth($list, 1); 19 | @if $first != null and $first != () { 20 | $blocks: "#{$prefix}(#{$quoted}#{$first}#{$quoted})"; 21 | @if $listL > 1 { 22 | @for $i from 2 through ($listL) { 23 | $nextBlock: list.nth($list, $i); 24 | $nextBlock: "#{$separator}#{$prefix}(#{$quoted}#{$nextBlock}#{$quoted})"; 25 | $blocks: "#{$blocks}#{$nextBlock}"; 26 | } 27 | } 28 | @#{$name} #{"#{$blocks}"} { 29 | @content; 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/utils/_has.scss: -------------------------------------------------------------------------------- 1 | // Need `:has selector` 2 | 3 | @mixin Has() { 4 | @supports selector(:has(a)) { 5 | @content; 6 | } 7 | } 8 | 9 | @mixin NotHas() { 10 | @supports not selector(:has(a)) { 11 | @content; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/utils/_media.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | @use "sass:list"; 3 | 4 | @mixin each($list...) { 5 | $listL: list.length($list); 6 | @if $listL >= 1 { 7 | $first: list.nth($list, 1); 8 | @if $first != null and $first != () { 9 | $blocks: "(#{$first})"; 10 | @if $listL > 1 { 11 | @for $i from 2 through ($listL) { 12 | $nextBlock: list.nth($list, $i); 13 | $nextBlock: ", (#{$nextBlock})"; 14 | $blocks: "#{$blocks}#{$nextBlock}"; 15 | } 16 | } 17 | @media #{"#{$blocks}"} { 18 | @content; 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/utils/_mode.scss: -------------------------------------------------------------------------------- 1 | $_osESR: false !default; 2 | $_pref: "support-bool-pref" !default; // "support-bool-pref" | "media-bool-pref" | "media-pref" 3 | 4 | @mixin ESR() { 5 | $_osESR: true !global; 6 | } 7 | 8 | @mixin STANDARD() { 9 | $_osESR: false !global; 10 | } 11 | 12 | @mixin SUPPORT_BOOL_PREF() { 13 | $_pref: "support-bool-pref" !global; 14 | } 15 | 16 | @mixin MEDIA_BOOL_PREF() { 17 | $_pref: "media-bool-pref" !global; 18 | } 19 | 20 | @mixin MEDIA_PREF() { 21 | $_pref: "media-pref" !global; 22 | } 23 | 24 | @function isESR() { 25 | @return $_osESR; 26 | } 27 | 28 | @function isSTANDARD() { 29 | @return not $_osESR; 30 | } 31 | 32 | @function isSupportBoolPref() { 33 | @return isESR() and $_pref == "support-bool-pref"; 34 | } 35 | 36 | @function isMediaBoolPref() { 37 | @return isSTANDARD() and $_pref == "media-bool-pref"; 38 | } 39 | 40 | @function isMediaPref() { 41 | @return isSTANDARD() and $_pref == "media-pref"; 42 | } 43 | -------------------------------------------------------------------------------- /src/utils/_moz_document.scss: -------------------------------------------------------------------------------- 1 | @mixin moz-document($urlList...) { 2 | $result: (); 3 | @each $prefix, $urlPattern in $urlList { 4 | $result: append($result, #{$prefix}(if($urlPattern, "#{$urlPattern}", null)), $separator: comma); 5 | } 6 | 7 | @#{-moz-document} #{$result} { 8 | @content; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/utils/_window_control.scss: -------------------------------------------------------------------------------- 1 | @use "os" as *; 2 | 3 | @mixin WindowControl_Right() { 4 | @include OS($win) { 5 | @content; 6 | } 7 | @include OS($linux) { 8 | @media (-moz-gtk-csd-reversed-placement: 0) { 9 | @content; 10 | } 11 | } 12 | } 13 | 14 | @mixin WindowControl_Left() { 15 | @include OS($mac) { 16 | @content; 17 | } 18 | @include OS($linux) { 19 | @media (-moz-gtk-csd-reversed-placement) { 20 | @content; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /userChrome.css: -------------------------------------------------------------------------------- 1 | /** Import Lepton stylesheet (Chrome) *****************************************/ 2 | @import url("css/leptonChrome.css"); 3 | 4 | 5 | /** Add your custom styles below **********************************************/ 6 | 7 | /* Enable option to edit bookmark URLs under Add Bookmark (blue star) menu */ 8 | /* 9 | .editBMPanel_locationRow { 10 | display: initial !important; 11 | } 12 | */ 13 | 14 | /* Disable Email Image/Audio/Video and Set as Desktop Background context menu items */ 15 | /* 16 | #context-sendimage, 17 | #context-sendvideo, 18 | #context-sendaudio, 19 | #context-sep-setbackground, 20 | #context-setDesktopBackground { 21 | display: none !important; 22 | } 23 | */ 24 | -------------------------------------------------------------------------------- /userContent.css: -------------------------------------------------------------------------------- 1 | /** Import Lepton stylesheet (Content) ****************************************/ 2 | @import url("css/leptonContent.css"); 3 | 4 | /** Add your custom styles below **********************************************/ 5 | -------------------------------------------------------------------------------- /waterfox.sh: -------------------------------------------------------------------------------- 1 | ## Please refer to the following commit: 2 | # https://github.com/WaterfoxCo/Waterfox/commit/f92e95c09ecd98f987bf54e1e6a1cf969b683277 3 | 4 | ## Replace Path 5 | # `./icons/` to `chrome://browser/skin/lepton/` 6 | replace_icon_path() { 7 | file=$1 8 | sed -i "s/\.\.\/icons\//chrome:\/\/browser\/skin\/lepton\//g" "${file}" 9 | } 10 | replace_icon_path css/leptonChrome.css 11 | replace_icon_path css/leptonContent.css 12 | --------------------------------------------------------------------------------