diff --git a/.github/actions/node-setup/action.yml b/.github/actions/node-setup/action.yml new file mode 100644 index 0000000..9848f55 --- /dev/null +++ b/.github/actions/node-setup/action.yml @@ -0,0 +1,25 @@ +name: "Setup" + +runs: + using: "composite" + steps: + # https://github.com/actions/cache/blob/main/examples.md#node---yarn + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + shell: bash + + - name: Node cache + id: node-cache + uses: actions/cache@v3 + with: + path: | + ${{ steps.yarn-cache-dir-path.outputs.dir }} + "**/node_modules" + key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Package Install + run: yarn install + shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06d708a..853e83f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,20 +21,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - - name: Node cache - id: node-cache - uses: actions/cache@v2 - with: - path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-node- - - - name: Package Install - if: steps.node-cache.outputs.cache-hit != 'true' - run: yarn install + - name: Setup + uses: ./.github/actions/node-setup - name: Build run: yarn build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9788e49..4f637e8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,7 +7,8 @@ jobs: sync-branches: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + fetch-depth: 0 - name: Merge master -> photon-style uses: devmasx/merge-branch@1.4.0 @@ -38,7 +39,7 @@ jobs: - name: "Lepton-Proton-Style" branch: "proton-style" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: ref: ${{ matrix.branch }} diff --git a/CREDITS b/CREDITS index b5a5812..9b18c90 100644 --- a/CREDITS +++ b/CREDITS @@ -7,6 +7,9 @@ ---------- Major Contributors +N: 2641a40fd44383320adde4b027a1d0b03bd550 +W: https://github.com/2641a40fd44383320adde4b027a1d0b03bd550 + N: AveYo E: aveyo@yahoo.com W: https://github.com/AveYo @@ -26,6 +29,10 @@ N: Jani Haiko E: haiko.jani@gmail.com W: https://github.com/ojaha065 +N: Jiho Lee +E: optional.int@kakao.com +W: https://github.com/DPS0340 + N: kanlukasz W: https://github.com/kanlukasz @@ -39,9 +46,6 @@ W: https://www.oss.kr/ ---------- Contributors -N: 2641a40fd44383320adde4b027a1d0b03bd550 -W: https://github.com/2641a40fd44383320adde4b027a1d0b03bd550 - N: 7k5x E: 7k5xlp0onfire@gmail.com W: https://github.com/7k5x diff --git a/README.org b/README.org index 8a2782f..d4ae800 100644 --- a/README.org +++ b/README.org @@ -186,6 +186,7 @@ Thanks to all sponsors & contributors to this project for providing help and dev [[https://www.oss.kr/][https://user-images.githubusercontent.com/25581533/203210367-9f2eed69-666a-4218-acde-128892aa09d8.png]] [[https://github.com/ojaha065][@@html:@@]] +[[https://github.com/DPS0340][@@html:@@]] [[https://github.com/kanlukasz][@@html:@@]] [[https://github.com/nikkehtine][@@html:@@]] diff --git a/__tests__/native_menu.test.scss b/__tests__/native_menu.test.scss index 7b6d005..ba7189b 100644 --- a/__tests__/native_menu.test.scss +++ b/__tests__/native_menu.test.scss @@ -9,6 +9,9 @@ @include native_menu.NativeMenu { @include example; } + @include native_menu.NativeMenuPopup { + @include example; + } @include native_menu.Win10_NativeMenu { @include example; } @@ -17,6 +20,10 @@ @supports -moz-bool-pref("widget.macos.native-context-menus") or -moz-bool-pref("widget.gtk.native-context-menus") { @include example; } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup), + menupopup:not([placespopup="true"]) { + @include example; + } @media not (-moz-windows-non-native-menus) { @include example; } diff --git a/css/leptonChrome.css b/css/leptonChrome.css index 8c8358d..d9efbf7 100644 --- a/css/leptonChrome.css +++ b/css/leptonChrome.css @@ -49,6 +49,12 @@ #widget-overflow-mainView #zoom-in-button > .toolbarbutton-icon { padding-inline-start: 0px !important; } + /*= Subview button, Menu's right padding #597 ================================*/ + .subviewbutton.toolbaritem-combined-buttons:not([shortcut]), + .subviewbutton.subviewbutton-nav:not([shortcut]), + menu.subviewbutton { + padding-inline-end: 0 !important; + } /*= Icon Fill Color ==========================================================*/ :root:-moz-lwtheme { /* Auto create --lwt-toolbarbutton-icon-fill-attention, fix for nightly default theme @@ -273,25 +279,27 @@ } } @media (-moz-os-version: windows-win7), (-moz-platform: windows-win7) { - menu[_moz-menuactive="true"], - menuitem[_moz-menuactive="true"] { - background-color: color-mix(in srgb, -moz-menuhover 5%, transparent) !important; - border-color: color-mix(in srgb, -moz-menuhover 60%, transparent) !important; - } - menu[_moz-menuactive="true"][disabled="true"], - menuitem[_moz-menuactive="true"][disabled="true"] { - background-color: color-mix(in srgb, currentColor 5%, transparent) !important; - border-color: color-mix(in srgb, currentColor 60%, transparent) !important; - } - /* Remove text shadow */ - :root:-moz-lwtheme #toolbar-menubar { - text-shadow: unset !important; - /* Original: 0 0 .5em white, 0 0 .5em white, 0 1px 0 rgba(255, 255, 255, .4) */ - } - /* Remove Color */ - :root:-moz-lwtheme #main-menubar:not(:-moz-window-inactive) { - background-color: unset !important; /* Original: rgba(255, 255, 255, .5) */ - color: unset !important; /* Original: black */ + @media (-moz-windows-classic: 0) { + menu[_moz-menuactive="true"], + menuitem[_moz-menuactive="true"] { + background-color: color-mix(in srgb, -moz-menuhover 5%, transparent) !important; + border-color: color-mix(in srgb, -moz-menuhover 60%, transparent) !important; + } + menu[_moz-menuactive="true"][disabled="true"], + menuitem[_moz-menuactive="true"][disabled="true"] { + background-color: color-mix(in srgb, currentColor 5%, transparent) !important; + border-color: color-mix(in srgb, currentColor 60%, transparent) !important; + } + /* Remove text shadow */ + :root:-moz-lwtheme #toolbar-menubar { + text-shadow: unset !important; + /* Original: 0 0 .5em white, 0 0 .5em white, 0 1px 0 rgba(255, 255, 255, .4) */ + } + /* Remove Color */ + :root:-moz-lwtheme #main-menubar:not(:-moz-window-inactive) { + background-color: unset !important; /* Original: rgba(255, 255, 255, .5) */ + color: unset !important; /* Original: black */ + } } } @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { @@ -310,15 +318,15 @@ @media (-moz-os-version: windows-win10), (-moz-platform: windows-win10) { @media not (-moz-windows-non-native-menus) { menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menu[_moz-menuactive="true"], - menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"], menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menuitem[_moz-menuactive="true"], + menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"], menupopup:not([placespopup="true"]) menuitem[_moz-menuactive="true"] { background-color: #91c9f7 !important; border-color: transparent !important; } menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menu[_moz-menuactive="true"][disabled="true"], - menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"][disabled="true"], menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) menuitem[_moz-menuactive="true"][disabled="true"], + menupopup:not([placespopup="true"]) menu[_moz-menuactive="true"][disabled="true"], menupopup:not([placespopup="true"]) menuitem[_moz-menuactive="true"][disabled="true"] { background-color: color-mix(in srgb, currentColor 9%, transparent) !important; border-color: transparent !important; @@ -2243,7 +2251,6 @@ --in-content-border-color: color-mix(in srgb, currentColor 41%, transparent) !important; } #viewGroup > radio { - border-radius: 8px !important; padding: var(--in-content-button-vertical-padding) var(--in-content-button-horizontal-padding) !important; margin: 4px !important; list-style-image: none !important; @@ -2255,6 +2262,11 @@ fill: currentColor !important; color: var(--in-content-deemphasized-text) !important; /* FieldText */ } + @supports not -moz-bool-pref("userChrome.rounding.square_button") { + #viewGroup > radio { + border-radius: 8px !important; + } + } #viewGroup > radio:hover { background-color: var(--in-content-button-background-hover) !important; /* #E0E8F6; */ } @@ -2441,6 +2453,11 @@ padding: 5px !important; border-radius: 4px !important; } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesToolbar > toolbarbutton { + border-radius: 0 !important; + } + } #placesToolbar > toolbarbutton[disabled] { opacity: 0.6 !important; } @@ -2463,11 +2480,16 @@ #placesMenu > menu { appearance: none !important; color: var(--organizer-color) !important; - border-radius: 4px !important; padding-block: 5px !important; padding-inline-start: 5px !important; + border-radius: 4px !important; margin-inline-end: 2px !important; } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesMenu > menu { + border-radius: 0 !important; + } + } #placesMenu > menu[_moz-menuactive="true"], #placesMenu > menu:hover { background-color: var(--organizer-hover-background) !important; @@ -2494,6 +2516,12 @@ padding-block: 2px !important; min-height: 24px !important; } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #searchFilter, + #detailsPane html|input { + border-radius: 0 !important; + } + } #searchFilter[focused] { box-shadow: var(--organizer-toolbar-field-focus-box-shadow) !important; background-color: var(--organizer-toolbar-field-background-focused) !important; @@ -2635,6 +2663,12 @@ -moz-context-properties: fill !important; fill: currentColor !important; } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + border-radius: 0 !important; + } + } #editBookmarkPanelRows .expander-up:hover, #editBookmarkPanelRows .expander-down:hover { background-color: var(--organizer-hover-background) !important; @@ -2668,6 +2702,11 @@ min-height: 20px !important; padding-inline: 4px !important; } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #places input { + border-radius: 0 !important; + } + } #places input:focus { outline: 2px solid var(--organizer-outline-color) !important; outline-offset: -1px !important; @@ -2686,6 +2725,11 @@ border: 1px solid var(--organizer-border-color) !important; border-radius: 4px !important; } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #editBMPanel_tagsSelectorRow > richlistbox { + border-radius: 0 !important; + } + } #editBMPanel_tagsSelectorRow > richlistbox > richlistitem { border: 1px solid transparent !important; } @@ -2734,15 +2778,10 @@ #identity-popup-clear-sitedata-button, #identity-popup-more-info, #unified-extensions-manage-extensions, - .unified-extensions-item-open-menu { + .unified-extensions-item-open-menu, + .unified-extensions-item-menu-button.subviewbutton { cursor: pointer !important; } - /* TODO: For now, fxa-menu doesn't show any status. - (JS required, observe .syncNowBtn status) - #PanelUI-fxa-menu-syncnow-button[syncstatus="active"] { - cursor: progress !important; - } - */ } /*= Panel UI Button Separator ================================================*/ @supports -moz-bool-pref("userChrome.decoration.panel_button_separator") { @@ -3064,13 +3103,15 @@ .urlbarView-button, .urlbarView-tip-button, .urlbarView-action, + .tab-close-button, toolbarbutton.bookmark-item:not(.subviewbutton), #sidebar-switcher-target { --toolbarbutton-border-radius: 0; /* Original: 4px */ } button, findbar toolbarbutton, - .notification-button { + .notification-button, + #main-menubar > menu { border-radius: 0 !important; } } @@ -3081,6 +3122,11 @@ --tab-border-radius: var(--toolbarbutton-border-radius); } } +@supports -moz-bool-pref("userChrome.rounding.square_dialog") { + .dialogBox { + border-radius: 0 !important; + } +} @supports -moz-bool-pref("userChrome.rounding.square_panel") { :root { --arrowpanel-border-radius: 0 !important; @@ -3093,7 +3139,7 @@ } } @supports -moz-bool-pref("userChrome.rounding.square_menupopup") { - xul|menupopup { + menupopup { --panel-border-radius: 0px !important; border-radius: 0 !important; } @@ -3109,6 +3155,7 @@ html|select[size][multiple], xul|listheader, xul|richlistbox, + xul|menulist, html|input { border-radius: 0 !important; } @@ -3124,8 +3171,23 @@ } } @supports -moz-bool-pref("userChrome.rounding.square_checklabel") { - .checkbox-check, - xul|*.radio-check { + .checkbox-check { + border-radius: 0 !important; + } +} +/*= Library ==============================================================*/ +@supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesToolbar > toolbarbutton, + #placesMenu > menu, + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + border-radius: 0 !important; + } +} +@supports -moz-bool-pref("userChrome.rounding.square_field") { + #searchFilter, + #detailsPane html|input, + #places input #editBMPanel_tagsSelectorRow > richlistbox { border-radius: 0 !important; } } @@ -3754,13 +3816,16 @@ /*= Panel - Reduce padding ===================================================*/ @supports -moz-bool-pref("userChrome.padding.panel") { :root { - --arrowpanel-menuitem-margin: 0 var(--arrowpanel-menuicon-padding, 8px) !important; /* Original: 0 8px */ + --arrowpanel-menuitem-margin-block: 0; /* FF 102 compatibility */ + --arrowpanel-menuitem-margin-inline: 8px; + --arrowpanel-menuitem-margin: var(--arrowpanel-menuitem-margin-block) var(--arrowpanel-menuitem-margin-inline) !important; /* Original: 0 8px */ --arrowpanel-menuitem-padding-block: 5px !important; /* Original: 8px */ --arrowpanel-menuitem-padding-inline: 5px !important; /* Original: 8px */ --arrowpanel-menuitem-padding: var(--arrowpanel-menuitem-padding-block) var(--arrowpanel-menuitem-padding-inline) !important; /* Compatibility */ --arrowpanel-padding: 0.8em !important; /* Original: 16px or .cui-widget-panel, .cui-widget-panel::part(arrowcontent) => 4px 0 */ } :root[uidensity="compact"] { + --arrowpanel-menuitem-margin-inline: 4px; /* FF 102 compatibility */ --arrowpanel-menuitem-padding-block: 3px !important; --arrowpanel-menuitem-padding-inline: 3px !important; } @@ -3768,6 +3833,9 @@ --arrowpanel-menuitem-padding-block: 8px !important; /* Original: 8px */ --arrowpanel-menuitem-padding-inline: 8px !important; /* Original: 8px */ } + .all-tabs-item { + margin: var(--arrowpanel-menuitem-margin) !important; + } @supports not -moz-bool-pref("userChrome.icon.disabled") { @supports not -moz-bool-pref("userChrome.icon.panel") { .subviewbutton { @@ -3775,6 +3843,9 @@ } } } + .unified-extensions-item-menu-button.subviewbutton { + padding: 8px !important; /* Original: var(--arrowpanel-menuitem-padding-inline) */ + } } @supports -moz-bool-pref("userChrome.padding.panel_header") { .panel-header { @@ -8723,39 +8794,42 @@ @supports -moz-bool-pref("userChrome.autohide.back_button") or -moz-bool-pref("userChrome.autohide.forward_button") { :root { --uc-toolbarbutton-hide-size: calc( - -1 * (16px + (2 * var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding))) + -1 * (16px + (2 * (var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding)))) ); } } -@supports -moz-bool-pref("userChrome.autohide.back_button") { - #back-button[disabled="true"] { - margin-left: var(--uc-toolbarbutton-hide-size) !important; - opacity: 0 !important; - pointer-events: none; - } - @media (prefers-reduced-motion: no-preference) { - #back-button { - transition-property: background-color, opacity, margin-left !important; +@-moz-document url("chrome://browser/content/browser.xhtml") +{ + @supports -moz-bool-pref("userChrome.autohide.back_button") { + :root:not([customizing="true"]) #back-button[disabled="true"] { + margin-left: var(--uc-toolbarbutton-hide-size) !important; + opacity: 0 !important; + pointer-events: none; } - #back-button[disabled="true"] { - transition: background-color 1s var(--animation-easing-function), opacity 1s var(--animation-easing-function), - margin-left 0.5s ease !important; + @media (prefers-reduced-motion: no-preference) { + #back-button { + transition-property: background-color, opacity, margin-left !important; + } + #back-button[disabled="true"] { + transition: background-color 1s var(--animation-easing-function), opacity 1s var(--animation-easing-function), + margin-left 0.5s ease !important; + } } } -} -@supports -moz-bool-pref("userChrome.autohide.forward_button") { - #forward-button[disabled="true"] { - margin-left: var(--uc-toolbarbutton-hide-size) !important; - opacity: 0 !important; - pointer-events: none; - } - @media (prefers-reduced-motion: no-preference) { - #forward-button { - transition-property: background-color, opacity, margin-left !important; + @supports -moz-bool-pref("userChrome.autohide.forward_button") { + :root:not([customizing="true"]) #forward-button[disabled="true"] { + margin-left: var(--uc-toolbarbutton-hide-size) !important; + opacity: 0 !important; + pointer-events: none; } - #forward-button[disabled="true"] { - transition: background-color 1s var(--animation-easing-function), opacity 1s var(--animation-easing-function), - margin-left 0.5s ease !important; + @media (prefers-reduced-motion: no-preference) { + #forward-button { + transition-property: background-color, opacity, margin-left !important; + } + #forward-button[disabled="true"] { + transition: background-color 1s var(--animation-easing-function), opacity 1s var(--animation-easing-function), + margin-left 0.5s ease !important; + } } } } @@ -9592,6 +9666,11 @@ } } @supports -moz-bool-pref("userChrome.hidden.urlbar_iconbox.label_only") { + #identity-box[pageproxystate="valid"].notSecureText, + #identity-box[pageproxystate="valid"].chromeUI, + #identity-box[pageproxystate="valid"].extensionPage { + margin-inline-end: var(--identity-box-margin-inline) !important; + } #identity-box[pageproxystate="valid"].chromeUI #identity-icon-box:not(:hover), #identity-box[pageproxystate="valid"].extensionPage #identity-icon-box:not(:hover) { background-color: transparent !important; @@ -9797,6 +9876,16 @@ } } /** Panel - Icons *************************************************************/ + :root { + --uc-sidebar-icon: url("chrome://browser/skin/sidebars.svg"); + --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars-right.svg"); + } + @supports selector(:has(a)) { + :root:has(#sidebar-box[positionend="true"]) { + --uc-sidebar-icon: url("chrome://browser/skin/sidebars-right.svg"); + --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars.svg"); + } + } @supports -moz-bool-pref("userChrome.icon.panel") { /*= Padding ==================================================================*/ :root { @@ -10257,6 +10346,12 @@ list-style-image: url("chrome://global/skin/icons/settings.svg"); } /*= BMB_bookmarksPopup =======================================================*/ + #BMB_viewBookmarksSidebar { + --menuitem-image: var(--uc-sidebar-icon); + } + #BMB_viewBookmarksSidebar[data-l10n-args='{"isVisible":true}'] { + --menuitem-image: url("chrome://global/skin/icons/close.svg"); + } #BMB_bookmarksShowAllTop, #BMB_bookmarksShowAll { --menuitem-image: url("chrome://browser/skin/bookmark-star-on-tray.svg"); @@ -10319,11 +10414,7 @@ list-style-image: url("chrome://browser/skin/tab.svg"); } #sidebar-reverse-position { - list-style-image: url("chrome://browser/skin/sidebars-right.svg"); - } - #sidebar-box[positionend="true"] #sidebar-reverse-position { - /* Can't apply this. shadow dom */ - list-style-image: url("chrome://browser/skin/sidebars.svg"); + list-style-image: var(--uc-sidebar-icon-reverse); } #sidebarMenu-popup > .subviewbutton[data-l10n-id="sidebar-menu-close"] { list-style-image: url("chrome://global/skin/icons/close.svg"); @@ -10443,6 +10534,11 @@ :root { --context-menu-background-padding-default: 2px; } + @media (-moz-windows-classic) { + :root { + --context-menu-background-padding-default: -0.5px; + } + } } @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { :root { @@ -10489,6 +10585,45 @@ --context-menu-background-padding: 3px; --menu-background-padding-default: 0px; } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root { + --context-menu-background-padding: 5px; + } + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + appearance: none !important; + padding-block: 0 !important; + padding-inline-start: 5px !important; + margin-inline-end: 8px !important; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + box-sizing: content-box; + } + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel { + box-sizing: content-box; + min-height: 16px; + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-text, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-text, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-text, + menupopup:not([placespopup="true"]) .menu-iconic-text { + padding-block: 0 !important; + } } :not(menu, #ContentSelectDropdown, #context-navigation) > menupopup @@ -10610,9 +10745,14 @@ menupopup:is(#BMB_bookmarksPopup) menu:not(.menu-iconic), #PersonalToolbar menupopup[placespopup="true"] menuitem:not(.menuitem-iconic, [disabled="true"]), #PersonalToolbar menupopup[placespopup="true"] menu:not(.menu-iconic) { - margin-inline: var(--arrowpanel-menuitem-padding-inline) !important; - padding-inline-start: calc(var(--arrowpanel-menuicon-padding) + var(--context-menu-text-padding)) !important; - background-position: var(--uc-menu-background-position) calc(var(--arrowpanel-menuicon-padding)) center !important; + --arrowpanel-bookmark-menuicon-padding: calc( + var(--arrowpanel-menuicon-padding) - var(--arrowpanel-menuitem-margin-inline) + ); + margin-inline-start: var(--arrowpanel-menuitem-margin-inline) !important; + padding-inline-start: calc( + var(--arrowpanel-bookmark-menuicon-padding) + var(--context-menu-text-padding) + ) !important; + background-position: var(--uc-menu-background-position) var(--arrowpanel-bookmark-menuicon-padding) center !important; } } /* Linux */ @@ -11643,7 +11783,7 @@ --menuitem-image: url("../icons/toolbar.svg"); } #viewSidebarMenuMenu { - --menuitem-image: url("chrome://browser/skin/sidebars.svg"); + --menuitem-image: var(--uc-sidebar-icon); } #viewFullZoomMenu { --menuitem-image: url("../icons/screenshot.svg"); diff --git a/css/leptonContent.css b/css/leptonContent.css index 6ad5f53..0535be6 100644 --- a/css/leptonContent.css +++ b/css/leptonContent.css @@ -1708,6 +1708,13 @@ /* Ensure font-size isn't overridden by widget styling (e.g. in forms.css) */ font-size: 1em !important; } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + button, + select, + input[type="color"] { + border-radius: 0 !important; + } + } button { font-weight: 600 !important; /* Use the same margin of other elements for the alignment */ @@ -1781,6 +1788,11 @@ margin-inline: 0 6px !important; flex-shrink: 0 !important; /* avoid shrinking inside flex container */ } + @supports -moz-bool-pref("userChrome.rounding.square_checklabel") { + input[type="checkbox"] { + border-radius: 0 !important; + } + } input[type="checkbox"]:enabled:hover { background-color: var(--checkbox-unchecked-hover-bgcolor) !important; } @@ -2234,6 +2246,11 @@ padding: 5px !important; border-radius: 4px !important; } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesToolbar > toolbarbutton { + border-radius: 0 !important; + } + } #placesToolbar > toolbarbutton[disabled] { opacity: 0.6 !important; } @@ -2256,11 +2273,16 @@ #placesMenu > menu { appearance: none !important; color: var(--organizer-color) !important; - border-radius: 4px !important; padding-block: 5px !important; padding-inline-start: 5px !important; + border-radius: 4px !important; margin-inline-end: 2px !important; } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesMenu > menu { + border-radius: 0 !important; + } + } #placesMenu > menu[_moz-menuactive="true"], #placesMenu > menu:hover { background-color: var(--organizer-hover-background) !important; @@ -2287,6 +2309,12 @@ padding-block: 2px !important; min-height: 24px !important; } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #searchFilter, + #detailsPane html|input { + border-radius: 0 !important; + } + } #searchFilter[focused] { box-shadow: var(--organizer-toolbar-field-focus-box-shadow) !important; background-color: var(--organizer-toolbar-field-background-focused) !important; @@ -2428,6 +2456,12 @@ -moz-context-properties: fill !important; fill: currentColor !important; } + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + border-radius: 0 !important; + } + } #editBookmarkPanelRows .expander-up:hover, #editBookmarkPanelRows .expander-down:hover { background-color: var(--organizer-hover-background) !important; @@ -2461,6 +2495,11 @@ min-height: 20px !important; padding-inline: 4px !important; } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #places input { + border-radius: 0 !important; + } + } #places input:focus { outline: 2px solid var(--organizer-outline-color) !important; outline-offset: -1px !important; @@ -2479,6 +2518,11 @@ border: 1px solid var(--organizer-border-color) !important; border-radius: 4px !important; } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #editBMPanel_tagsSelectorRow > richlistbox { + border-radius: 0 !important; + } + } #editBMPanel_tagsSelectorRow > richlistbox > richlistitem { border: 1px solid transparent !important; } @@ -2712,6 +2756,117 @@ } } } +/** Rounding ******************************************************************/ +@supports -moz-bool-pref("userChrome.rounding.square_button") { + @-moz-document url-prefix("about:"), url-prefix("chrome://browser/content/preferences/dialogs") + { + button, + .close-icon, + .action-icon::before, + #categories > .category, + .sidebar-footer-link { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:debugging") { + .sidebar-item { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("chrome://browser/content/places/places.xhtml"), url-prefix("about:downloads") + { + .downloadButton > .button-box { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:protections") { + #manage-protections, + #sign-up-for-monitor-link, + #get-proxy-extension-link, + #get-vpn-link, + #vpn-banner-link, + .monitor-partial-breaches-link-wrapper, + .monitor-breaches-link-wrapper { + border-radius: 0 !important; + } + } +} +@supports -moz-bool-pref("userChrome.rounding.square_dialog") { + @-moz-document url-prefix("about:") { + .dialogBox { + border-radius: 0 !important; + } + } + @-moz-document url("about:home"), url("about:newtab") { + .modal { + border-radius: 0 !important; + } + } +} +@supports -moz-bool-pref("userChrome.rounding.square_checklabel") { + @-moz-document url-prefix("about:"), url-prefix("chrome://browser/content/preferences/dialogs") + { + input[type="checkbox"]:not(.toggle-button), + .checkbox-check { + border-radius: 0 !important; + } + } +} +@supports -moz-bool-pref("userChrome.rounding.square_field") { + @-moz-document url-prefix("about:"), url-prefix("chrome://browser/content/preferences/dialogs") + { + input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]), + textarea, + select, + menulist, + search-textbox { + border-radius: 0 !important; + } + } + @-moz-document url-prefix("about:debugging") { + .default-input { + border-radius: 0 !important; + } + } + @-moz-document url("about:home"), url("about:newtab") { + .search-wrapper .search-handoff-button, + .search-wrapper input { + border-radius: 0 !important; + } + } +} +@supports -moz-bool-pref("userChrome.rounding.square_menupopup") { + @-moz-document url-prefix("about:"), url-prefix("chrome://") + { + menupopup { + --panel-border-radius: 0 !important; + } + } + @-moz-document url("about:home"), url("about:newtab") { + .context-menu { + border-radius: 0 !important; + } + } +} +@-moz-document url("chrome://browser/content/places/places.xhtml") +{ + /*= Library ==============================================================*/ + @supports -moz-bool-pref("userChrome.rounding.square_button") { + #placesToolbar > toolbarbutton, + #placesMenu > menu, + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + border-radius: 0 !important; + } + } + @supports -moz-bool-pref("userChrome.rounding.square_field") { + #searchFilter, + #detailsPane html|input, + #places input #editBMPanel_tagsSelectorRow > richlistbox { + border-radius: 0 !important; + } + } +} /** Monospace *****************************************************************/ @supports -moz-bool-pref("userContent.page.monospace") { @-moz-document url-prefix("about:"), url-prefix("chrome://browser/content/places/places.xhtml"), regexp("^(((jar:)?file:///)|(chrome://)).*/$") @@ -2778,6 +2933,11 @@ :root { --context-menu-background-padding-default: 2px; } + @media (-moz-windows-classic) { + :root { + --context-menu-background-padding-default: -0.5px; + } + } } @media (-moz-os-version: windows-win8), (-moz-platform: windows-win8) { :root { @@ -2812,6 +2972,45 @@ --context-menu-background-padding: 3px; --menu-background-padding-default: 0px; } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + :root { + --context-menu-background-padding: 5px; + } + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + appearance: none !important; + padding-block: 0 !important; + padding-inline-start: 5px !important; + margin-inline-end: 8px !important; + } + @supports -moz-bool-pref("userChrome.compatibility.os.win11") { + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic > .menu-iconic-left, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menuitem-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menu-iconic > .menu-iconic-left, + menupopup:not([placespopup="true"]) .menuitem-iconic > .menu-iconic-left { + box-sizing: content-box; + } + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel { + box-sizing: content-box; + min-height: 16px; + } + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-accel, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-text, + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) .menu-iconic-text, + menupopup:not([placespopup="true"]) .menu-accel, + menupopup:not([placespopup="true"]) .menu-iconic-accel, + menupopup:not([placespopup="true"]) .menu-text, + menupopup:not([placespopup="true"]) .menu-iconic-text { + padding-block: 0 !important; + } } menupopup:is(#placesContext, #placesColumnsContext, #downloadsContextMenu) menuitem:not(.menuitem-iconic, .bookmark-item, .in-menulist, [checked="true"]), diff --git a/docs/Preference.md b/docs/Preference.md index 5c94d1e..6598494 100644 --- a/docs/Preference.md +++ b/docs/Preference.md @@ -146,16 +146,32 @@ Customizations that cannot be done with add-on and [`User Custom CSS`](./README. - [Bug 1432901 - Prototype loading ES6 Module as JSM](https://bugzilla.mozilla.org/show_bug.cgi?id=1432901) **How to** +- `/defaults/pref/autoconfig.js` ```javascript pref("general.config.filename", "config.js"); // alternative to "firefox.cfg", for using highlight pref("general.config.obscure_value", 0); +pref("general.config.sandbox_enabled", false); // Sandbox needs to be disabled in release and Beta versions +``` + +- `/config.js` +```javascript +// skip 1st line +try { + const cmanifest = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('UChrm', Ci.nsIFile); + cmanifest.append('utils'); + cmanifest.append('chrome.manifest'); + + if(cmanifest.exists()){ + Components.manager.QueryInterface(Ci.nsIComponentRegistrar).autoRegister(cmanifest); + ChromeUtils.import('chrome://userchromejs/content/boot.jsm'); + } + +} catch(ex) {}; ``` **Example** -```javascript -pref("general.config.filename", "config.js"); // alternative to "firefox.cfg", for using highlight -pref("general.config.obscure_value", 0); -``` +- [MrOtherGuy/fx-autoconfig](https://github.com/MrOtherGuy/fx-autoconfig) +- [xiaoxiaoflood/firefox-scripts](https://github.com/xiaoxiaoflood/firefox-scripts) ## Using with User Custom CSS **Related Docs** diff --git a/src/autohide/_back_button.scss b/src/autohide/_back_button.scss index 21cc162..d817a08 100644 --- a/src/autohide/_back_button.scss +++ b/src/autohide/_back_button.scss @@ -1,4 +1,4 @@ -#back-button[disabled="true"] { +:root:not([customizing="true"]) #back-button[disabled="true"] { margin-left: var(--uc-toolbarbutton-hide-size) !important; opacity: 0 !important; pointer-events: none; diff --git a/src/autohide/_forward_button.scss b/src/autohide/_forward_button.scss index 4e6e240..ddb47b0 100644 --- a/src/autohide/_forward_button.scss +++ b/src/autohide/_forward_button.scss @@ -1,4 +1,4 @@ -#forward-button[disabled="true"] { + :root:not([customizing="true"]) #forward-button[disabled="true"] { margin-left: var(--uc-toolbarbutton-hide-size) !important; opacity: 0 !important; pointer-events: none; diff --git a/src/autohide/_index.scss b/src/autohide/_index.scss index 805c44e..4fcc990 100644 --- a/src/autohide/_index.scss +++ b/src/autohide/_index.scss @@ -1,14 +1,17 @@ @include Option("userChrome.autohide.back_button", "userChrome.autohide.forward_button") { :root { - --uc-toolbarbutton-hide-size: calc(-1 * (16px + (2 * var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding)))); + --uc-toolbarbutton-hide-size: calc(-1 * (16px + (2 * (var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding))))); } } -@include Option("userChrome.autohide.back_button") { - @import "back_button"; -} -@include Option("userChrome.autohide.forward_button") { - @import "forward_button"; +@include moz-document(url "chrome://browser/content/browser.xhtml") +{ + @include Option("userChrome.autohide.back_button") { + @import "back_button"; + } + @include Option("userChrome.autohide.forward_button") { + @import "forward_button"; + } } @include Option("userChrome.autohide.page_action") { @import "page_action"; diff --git a/src/compatibility/_os.scss b/src/compatibility/_os.scss index 64edc40..d5fa112 100644 --- a/src/compatibility/_os.scss +++ b/src/compatibility/_os.scss @@ -104,18 +104,20 @@ //------------------------------------------------------------------------------ @include OS($win7) { - @include _os_menuEmulate(5%, 60%); + @media (-moz-windows-classic: 0) { + @include _os_menuEmulate(5%, 60%); - /* Remove text shadow */ - :root:-moz-lwtheme #toolbar-menubar { - text-shadow: unset !important; - /* Original: 0 0 .5em white, 0 0 .5em white, 0 1px 0 rgba(255, 255, 255, .4) */ - } + /* Remove text shadow */ + :root:-moz-lwtheme #toolbar-menubar { + text-shadow: unset !important; + /* Original: 0 0 .5em white, 0 0 .5em white, 0 1px 0 rgba(255, 255, 255, .4) */ + } - /* Remove Color */ - :root:-moz-lwtheme #main-menubar:not(:-moz-window-inactive) { - background-color: unset !important; /* Original: rgba(255, 255, 255, .5) */ - color: unset !important; /* Original: black */ + /* Remove Color */ + :root:-moz-lwtheme #main-menubar:not(:-moz-window-inactive) { + background-color: unset !important; /* Original: rgba(255, 255, 255, .5) */ + color: unset !important; /* Original: black */ + } } } @include OS($win8) { @@ -125,10 +127,9 @@ /*= Windows 10 - Native Menu Active Color =====================================*/ @include OS($win10) { @include Win10_NativeMenu() { - menu[_moz-menuactive="true"], - menuitem[_moz-menuactive="true"] { - menupopup:is(#historyMenuPopup, #bookmarksMenuPopup) &, - menupopup:not([placespopup="true"]) & { + @include NativeMenuPopup { + menu[_moz-menuactive="true"], + menuitem[_moz-menuactive="true"] { background-color: #91c9f7 !important; // color-mix(in srgb, -moz-menuhover 40%, transparent) border-color: transparent !important; diff --git a/src/compatibility/_theme.scss b/src/compatibility/_theme.scss index d46bf5c..331a8a2 100644 --- a/src/compatibility/_theme.scss +++ b/src/compatibility/_theme.scss @@ -24,6 +24,13 @@ } } +/*= Subview button, Menu's right padding #597 ================================*/ +.subviewbutton.toolbaritem-combined-buttons:not([shortcut]), +.subviewbutton.subviewbutton-nav:not([shortcut]), +menu.subviewbutton { + padding-inline-end: 0 !important; +} + /*= Icon Fill Color ==========================================================*/ :root:-moz-lwtheme { /* Auto create --lwt-toolbarbutton-icon-fill-attention, fix for nightly default theme diff --git a/src/contents/_rounding.scss b/src/contents/_rounding.scss new file mode 100644 index 0000000..e7bdde3 --- /dev/null +++ b/src/contents/_rounding.scss @@ -0,0 +1,99 @@ +@include Option("userChrome.rounding.square_button") { + @include moz-document(url-prefix "about:", url-prefix "chrome://browser/content/preferences/dialogs") { + button, + .close-icon, + .action-icon::before, + #categories > .category, + .sidebar-footer-link { + border-radius: 0 !important; + } + } + + @include moz-document(url-prefix "about:debugging") { + .sidebar-item { + border-radius: 0 !important; + } + } + + @include moz-document(url-prefix "chrome://browser/content/places/places.xhtml", url-prefix "about:downloads") { + .downloadButton > .button-box { + border-radius: 0 !important; + } + } + + @include moz-document(url-prefix "about:protections") { + #manage-protections, + #sign-up-for-monitor-link, + #get-proxy-extension-link, + #get-vpn-link, + #vpn-banner-link, + .monitor-partial-breaches-link-wrapper, + .monitor-breaches-link-wrapper { + border-radius: 0 !important; + } + } +} + +@include Option("userChrome.rounding.square_dialog") { + @include moz-document(url-prefix "about:") { + .dialogBox { + border-radius: 0 !important; + } + } + + @include moz-document(url "about:home", url "about:newtab") { + .modal { + border-radius: 0 !important; + } + } +} + +@include Option("userChrome.rounding.square_checklabel") { + @include moz-document(url-prefix "about:", url-prefix "chrome://browser/content/preferences/dialogs") { + input[type="checkbox"]:not(.toggle-button), + .checkbox-check { + border-radius: 0 !important; + } + } +} + +@include Option("userChrome.rounding.square_field") { + @include moz-document(url-prefix "about:", url-prefix "chrome://browser/content/preferences/dialogs") { + input:is([type="email"], [type="tel"], [type="text"], [type="password"], [type="url"], [type="number"]), + textarea, + select, + menulist, + search-textbox { + border-radius: 0 !important; + } + } + + @include moz-document(url-prefix "about:debugging") { + .default-input { + border-radius: 0 !important; + } + } + + @include moz-document(url "about:home", url "about:newtab") { + .search-wrapper { + .search-handoff-button, + input { + border-radius: 0 !important; + } + } + } +} + +@include Option("userChrome.rounding.square_menupopup") { + @include moz-document(url-prefix "about:", url-prefix "chrome://") { + menupopup { + --panel-border-radius: 0 !important; + } + } + + @include moz-document(url "about:home", url "about:newtab") { + .context-menu { + border-radius: 0 !important; + } + } +} diff --git a/src/contents/proton_contents/_proton_commons.scss b/src/contents/proton_contents/_proton_commons.scss index 9be371a..ee2e7b6 100644 --- a/src/contents/proton_contents/_proton_commons.scss +++ b/src/contents/proton_contents/_proton_commons.scss @@ -70,6 +70,10 @@ margin: 4px 8px !important; /* Ensure font-size isn't overridden by widget styling (e.g. in forms.css) */ font-size: 1em !important; + + @include Option("userChrome.rounding.square_button") { + border-radius: 0 !important; + } } button { font-weight: 600 !important; @@ -144,6 +148,10 @@ border-radius: 2px !important; margin-inline: 0 6px !important; flex-shrink: 0 !important; /* avoid shrinking inside flex container */ + + @include Option("userChrome.rounding.square_checklabel") { + border-radius: 0 !important; + } } input[type="checkbox"]:enabled:hover { background-color: var(--checkbox-unchecked-hover-bgcolor) !important; diff --git a/src/decoration/_cursor.scss b/src/decoration/_cursor.scss index 74aec7c..acc4b34 100644 --- a/src/decoration/_cursor.scss +++ b/src/decoration/_cursor.scss @@ -23,13 +23,13 @@ menuitem.openintabs-menuitem, #identity-popup-clear-sitedata-button, #identity-popup-more-info, #unified-extensions-manage-extensions, -.unified-extensions-item-open-menu { +.unified-extensions-item-open-menu, +.unified-extensions-item-menu-button.subviewbutton { cursor: pointer !important; } -/* TODO: For now, fxa-menu doesn't show any status. - (JS required, observe .syncNowBtn status) - #PanelUI-fxa-menu-syncnow-button[syncstatus="active"] { - cursor: progress !important; - } - */ +// TODO: For now, fxa-menu doesn't show any status. +// (JS required, observe .syncNowBtn status) +// #PanelUI-fxa-menu-syncnow-button[syncstatus="active"] { +// cursor: progress !important; +// } diff --git a/src/fullscreen/_show_bookmarkbar.css b/src/fullscreen/_show_bookmarkbar.scss similarity index 100% rename from src/fullscreen/_show_bookmarkbar.css rename to src/fullscreen/_show_bookmarkbar.scss diff --git a/src/hidden/_index.scss b/src/hidden/_index.scss index 3047a1c..6bfc65d 100644 --- a/src/hidden/_index.scss +++ b/src/hidden/_index.scss @@ -65,6 +65,12 @@ } } @include Option("userChrome.hidden.urlbar_iconbox.label_only") { + &.notSecureText, + &.chromeUI, + &.extensionPage { + margin-inline-end: var(--identity-box-margin-inline) !important; + } + &.chromeUI #identity-icon-box, &.extensionPage #identity-icon-box { &:not(:hover) { diff --git a/src/icons/_global_menu.scss b/src/icons/_global_menu.scss index 0c20225..6d1d8ee 100644 --- a/src/icons/_global_menu.scss +++ b/src/icons/_global_menu.scss @@ -104,7 +104,8 @@ menu.share-tab-url-item { --menuitem-image: url("../icons/toolbar.svg"); } #viewSidebarMenuMenu { - --menuitem-image: url("chrome://browser/skin/sidebars.svg"); + // --menuitem-image: url("chrome://browser/skin/sidebars.svg"); + --menuitem-image: var(--uc-sidebar-icon); } #viewFullZoomMenu { diff --git a/src/icons/_index.scss b/src/icons/_index.scss index ee4a326..f158aa0 100644 --- a/src/icons/_index.scss +++ b/src/icons/_index.scss @@ -4,6 +4,16 @@ } /** Panel - Icons *************************************************************/ +:root { + --uc-sidebar-icon: url("chrome://browser/skin/sidebars.svg"); + --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars-right.svg"); + @include Has { + &:has(#sidebar-box[positionend="true"]) { + --uc-sidebar-icon: url("chrome://browser/skin/sidebars-right.svg"); + --uc-sidebar-icon-reverse: url("chrome://browser/skin/sidebars.svg"); + } + } +} @include Option("userChrome.icon.panel") { @import "layout/panel"; @import "panel"; diff --git a/src/icons/_panel.scss b/src/icons/_panel.scss index 87511f5..7c310f2 100644 --- a/src/icons/_panel.scss +++ b/src/icons/_panel.scss @@ -390,6 +390,10 @@ panelMenuBookmarkThisPage[starred] { /*= BMB_bookmarksPopup =======================================================*/ #BMB_viewBookmarksSidebar { + --menuitem-image: var(--uc-sidebar-icon); + &[data-l10n-args='{"isVisible":true}'] { + --menuitem-image: url("chrome://global/skin/icons/close.svg"); + } } #BMB_bookmarksShowAllTop, #BMB_bookmarksShowAll { @@ -469,11 +473,7 @@ panelMenuBookmarkThisPage[starred] { } #sidebar-reverse-position { - list-style-image: url("chrome://browser/skin/sidebars-right.svg"); -} -#sidebar-box[positionend="true"] #sidebar-reverse-position { - /* Can't apply this. shadow dom */ - list-style-image: url("chrome://browser/skin/sidebars.svg"); + list-style-image: var(--uc-sidebar-icon-reverse); } #sidebarMenu-popup > .subviewbutton[data-l10n-id="sidebar-menu-close"] { diff --git a/src/icons/layout/_bookmark_menu.scss b/src/icons/layout/_bookmark_menu.scss index 7e3a8a3..78cc127 100644 --- a/src/icons/layout/_bookmark_menu.scss +++ b/src/icons/layout/_bookmark_menu.scss @@ -80,9 +80,11 @@ $_bookmarkToolbarMenus: selector.nest( @include OS($win10) { /* Bookmark Popup - None icon menu */ @include _layoutBookmarkMenu() { - margin-inline: var(--arrowpanel-menuitem-padding-inline) !important; - padding-inline-start: calc(var(--arrowpanel-menuicon-padding) + var(--context-menu-text-padding)) !important; - background-position: var(--uc-menu-background-position) calc(var(--arrowpanel-menuicon-padding)) center !important; + --arrowpanel-bookmark-menuicon-padding: calc(var(--arrowpanel-menuicon-padding) - var(--arrowpanel-menuitem-margin-inline)); + + margin-inline-start: var(--arrowpanel-menuitem-margin-inline) !important; + padding-inline-start: calc(var(--arrowpanel-bookmark-menuicon-padding) + var(--context-menu-text-padding)) !important; + background-position: var(--uc-menu-background-position) var(--arrowpanel-bookmark-menuicon-padding) center !important; } } diff --git a/src/icons/layout/_menu_common.scss b/src/icons/layout/_menu_common.scss index 62a3f35..eb3af6c 100644 --- a/src/icons/layout/_menu_common.scss +++ b/src/icons/layout/_menu_common.scss @@ -79,6 +79,9 @@ $_initialMenus: selector.append( @include OS($win7) { :root { --context-menu-background-padding-default: 2px; + @media (-moz-windows-classic) { + --context-menu-background-padding-default: -0.5px; + } } } @include OS($win8) { @@ -97,10 +100,37 @@ $_initialMenus: selector.append( --context-menu-background-padding: 1em; --context-menu-text-padding: 24px; /* 16px + 8px */ --menu-background-padding-default: calc(var(--context-menu-background-padding) + var(--context-menu-text-padding)); - - @include Win10_NativeMenu() { + } + @include Win10_NativeMenu() { + :root { --context-menu-background-padding: 3px; --menu-background-padding-default: 0px; + @include Option("userChrome.compatibility.os.win11") { + --context-menu-background-padding: 5px; + } + } + + @include NativeMenuPopup { + .menu-iconic, + .menuitem-iconic { + > .menu-iconic-left { + appearance: none !important; + padding-block: 0 !important; + padding-inline-start: 5px !important; + margin-inline-end: 8px !important; + @include Option("userChrome.compatibility.os.win11") { + box-sizing: content-box; + } + } + } + .menu-accel, .menu-iconic-accel { + box-sizing: content-box; + min-height: 16px; + } + .menu-accel, .menu-iconic-accel, + .menu-text, .menu-iconic-text { + padding-block: 0 !important; + } } } } diff --git a/src/leptonContent.scss b/src/leptonContent.scss index 2242f48..abe1704 100644 --- a/src/leptonContent.scss +++ b/src/leptonContent.scss @@ -35,6 +35,14 @@ @import "contents/proton_contents"; } +/** Rounding ******************************************************************/ +@import "contents/rounding"; + +// Put here to include library as a tab +@include moz-document(url "chrome://browser/content/places/places.xhtml") { + @import "rounding/library"; +} + /** Monospace *****************************************************************/ @include Option("userContent.page.monospace") { @import "contents/monospace"; diff --git a/src/library/_proton.scss b/src/library/_proton.scss index 8a1d961..f48a152 100644 --- a/src/library/_proton.scss +++ b/src/library/_proton.scss @@ -82,6 +82,10 @@ padding: 5px !important; border-radius: 4px !important; + @include Option("userChrome.rounding.square_button") { + border-radius: 0 !important; + } + &[disabled] { opacity: 0.6 !important; } @@ -108,11 +112,15 @@ > menu { appearance: none !important; color: var(--organizer-color) !important; - border-radius: 4px !important; padding-block: 5px !important; padding-inline-start: 5px !important; + border-radius: 4px !important; margin-inline-end: 2px !important; + @include Option("userChrome.rounding.square_button") { + border-radius: 0 !important; + } + &[_moz-menuactive="true"], &:hover { background-color: var(--organizer-hover-background) !important; @@ -141,6 +149,10 @@ margin: 0 !important; padding-block: 2px !important; min-height: 24px !important; + + @include Option("userChrome.rounding.square_field") { + border-radius: 0 !important; + } } #searchFilter[focused] { @@ -304,6 +316,10 @@ treechildren { -moz-context-properties: fill !important; fill: currentColor !important; + @include Option("userChrome.rounding.square_button") { + border-radius: 0 !important; + } + &:hover { background-color: var(--organizer-hover-background) !important; color: var(--organizer-hover-color) !important; @@ -340,6 +356,10 @@ treechildren { min-height: 20px !important; padding-inline: 4px !important; + @include Option("userChrome.rounding.square_field") { + border-radius: 0 !important; + } + &:focus { outline: 2px solid var(--organizer-outline-color) !important; outline-offset: -1px !important; @@ -361,6 +381,10 @@ treechildren { border: 1px solid var(--organizer-border-color) !important; border-radius: 4px !important; + @include Option("userChrome.rounding.square_field") { + border-radius: 0 !important; + } + > richlistitem { border: 1px solid transparent !important; diff --git a/src/padding/_panel.scss b/src/padding/_panel.scss index 8d1fde8..716d2c4 100644 --- a/src/padding/_panel.scss +++ b/src/padding/_panel.scss @@ -1,5 +1,7 @@ :root { - --arrowpanel-menuitem-margin: 0 var(--arrowpanel-menuicon-padding, 8px) !important; /* Original: 0 8px */ + --arrowpanel-menuitem-margin-block: 0; /* FF 102 compatibility */ + --arrowpanel-menuitem-margin-inline: 8px; + --arrowpanel-menuitem-margin: var(--arrowpanel-menuitem-margin-block) var(--arrowpanel-menuitem-margin-inline) !important; /* Original: 0 8px */ --arrowpanel-menuitem-padding-block: 5px !important; /* Original: 8px */ --arrowpanel-menuitem-padding-inline: 5px !important; /* Original: 8px */ --arrowpanel-menuitem-padding: var(--arrowpanel-menuitem-padding-block) var(--arrowpanel-menuitem-padding-inline) !important; /* Compatibility */ @@ -7,6 +9,7 @@ } :root[uidensity="compact"] { + --arrowpanel-menuitem-margin-inline: 4px; /* FF 102 compatibility */ --arrowpanel-menuitem-padding-block: 3px !important; --arrowpanel-menuitem-padding-inline: 3px !important; } @@ -15,6 +18,10 @@ --arrowpanel-menuitem-padding-inline: 8px !important; /* Original: 8px */ } +.all-tabs-item { + margin: var(--arrowpanel-menuitem-margin) !important; +} + @include NotOption("userChrome.icon.disabled") { @include NotOption("userChrome.icon.panel") { .subviewbutton { @@ -22,3 +29,12 @@ } } } + +// #603 +.unified-extensions-item-menu-button.subviewbutton { + padding: 8px !important; /* Original: var(--arrowpanel-menuitem-padding-inline) */ +} +// Or +// toolbaritem.unified-extensions-item[unified-extensions="true"] .unified-extensions-item-menu-button.subviewbutton { +// padding: var(--arrowpanel-menuitem-padding-inline) !important; +// } diff --git a/src/rounding/_index.scss b/src/rounding/_index.scss index a46fa88..577efc6 100644 --- a/src/rounding/_index.scss +++ b/src/rounding/_index.scss @@ -1,5 +1,6 @@ /** Rounding ******************************************************************/ @import "square"; +@import "library"; /* --toolbarbutton-border-radius: 4px; diff --git a/src/rounding/_library.scss b/src/rounding/_library.scss new file mode 100644 index 0000000..a31bc2e --- /dev/null +++ b/src/rounding/_library.scss @@ -0,0 +1,17 @@ +/*= Library ==============================================================*/ +@include Option("userChrome.rounding.square_button") { + #placesToolbar > toolbarbutton, + #placesMenu > menu, + #editBookmarkPanelRows .expander-up, + #editBookmarkPanelRows .expander-down { + border-radius: 0 !important; + } +} +@include Option("userChrome.rounding.square_field") { + #searchFilter, + #detailsPane html|input, + #places input + #editBMPanel_tagsSelectorRow > richlistbox { + border-radius: 0 !important; + } +} diff --git a/src/rounding/_square.scss b/src/rounding/_square.scss index 9c86f15..d2dd19e 100644 --- a/src/rounding/_square.scss +++ b/src/rounding/_square.scss @@ -15,6 +15,7 @@ .urlbarView-button, .urlbarView-tip-button, .urlbarView-action, + .tab-close-button, toolbarbutton.bookmark-item:not(.subviewbutton), #sidebar-switcher-target { --toolbarbutton-border-radius: 0; /* Original: 4px */ @@ -22,7 +23,8 @@ button, findbar toolbarbutton, - .notification-button { + .notification-button, + #main-menubar > menu { border-radius: 0 !important; } } @@ -34,6 +36,12 @@ } } +@include Option("userChrome.rounding.square_dialog") { + .dialogBox { + border-radius: 0 !important; + } +} + @include Option("userChrome.rounding.square_panel") { :root { --arrowpanel-border-radius: 0 !important; @@ -47,7 +55,7 @@ } @include Option("userChrome.rounding.square_menupopup") { - xul|menupopup { + menupopup { --panel-border-radius: 0px !important; border-radius: 0 !important; } @@ -64,6 +72,7 @@ html|select[size][multiple], xul|listheader, xul|richlistbox, + xul|menulist, html|input { border-radius: 0 !important; } @@ -82,8 +91,7 @@ } @include Option("userChrome.rounding.square_checklabel") { - .checkbox-check, - xul|*.radio-check { + .checkbox-check { border-radius: 0 !important; } } diff --git a/src/theme/proton_chrome/_page_info.scss b/src/theme/proton_chrome/_page_info.scss index 26b5bc6..7e7624d 100644 --- a/src/theme/proton_chrome/_page_info.scss +++ b/src/theme/proton_chrome/_page_info.scss @@ -5,7 +5,6 @@ } #viewGroup > radio { - border-radius: 8px !important; padding: var(--in-content-button-vertical-padding) var(--in-content-button-horizontal-padding) !important; margin: 4px !important; @@ -18,6 +17,11 @@ -moz-context-properties: fill !important; fill: currentColor !important; color: var(--in-content-deemphasized-text) !important; /* FieldText */ + + @include NotOption("userChrome.rounding.square_button") { + border-radius: 8px !important; + } + &:hover { background-color: var(--in-content-button-background-hover) !important; /* #E0E8F6; */ } diff --git a/src/utils/_native_menu.scss b/src/utils/_native_menu.scss index aeb7969..66ac8ce 100644 --- a/src/utils/_native_menu.scss +++ b/src/utils/_native_menu.scss @@ -6,6 +6,13 @@ } } +@mixin NativeMenuPopup() { + menupopup:is(#historyMenuPopup, #bookmarksMenuPopup), + menupopup:not([placespopup="true"]) { + @content; + } +} + @mixin Win10_NativeMenu() { @media not (-moz-windows-non-native-menus) { @content; diff --git a/user.js b/user.js index 5b3e808..26cbcee 100644 --- a/user.js +++ b/user.js @@ -70,6 +70,7 @@ user_pref("userChrome.rounding.square_tab", false); // -- User Chrome -------------------------------------------------------------- // user_pref("userChrome.theme.proton_color.dark_blue_accent", true); // user_pref("userChrome.theme.monospace", true); +// user_pref("userChrome.compatibility.os.win11", true); // user_pref("userChrome.decoration.disable_panel_animate", true); // user_pref("userChrome.decoration.disable_sidebar_animate", true); @@ -120,6 +121,7 @@ user_pref("userChrome.rounding.square_tab", false); // user_pref("userChrome.combined.sub_button.as_normal", true); // user_pref("userChrome.rounding.square_button", true); +// user_pref("userChrome.rounding.square_dialog", true); // user_pref("userChrome.rounding.square_panel", true); // user_pref("userChrome.rounding.square_panelitem", true); // user_pref("userChrome.rounding.square_menupopup", true);