popup/menu styling #22 #28 #35

This commit is contained in:
bmFtZQ 2022-06-19 23:05:53 +08:00
parent 7184e2c721
commit 9653c08d39
9 changed files with 377 additions and 64 deletions

View file

@ -1,20 +1,22 @@
/* EdgeFr-Fox by bmFtZQ - popup.css */
:root {
--arrowpanel-border-radius: 4px !important;
--arrowpanel-border-radius: 8px !important;
--panel-subview-body-padding: 4px 0 !important;
--arrowpanel-menuitem-border-radius: 0 !important;
--arrowpanel-menuitem-margin: 0 !important;
--arrowpanel-menuitem-padding-block: 8px !important;
--arrowpanel-menuitem-padding-inline: 14px !important;
--arrowpanel-menuitem-border-radius: 4px !important;
--arrowpanel-menuitem-margin: 0 var(--uc-arrowpanel-menuitem-margin-inline) !important;
--arrowpanel-menuitem-padding-block: 6px !important;
--arrowpanel-menuitem-padding-inline: 11px !important;
--uc-arrowpanel-menuicon-margin-inline: 14px;
--panel-separator-margin-vertical: 4px !important;
--panel-separator-margin-horizontal: 0 !important;
--uc-panel-zoom-button-padding: 8px;
--uc-panel-zoom-button-inline-padding: 13px;
--uc-panel-zoom-button-inline-padding: 9px;
--uc-autocomplete-panel-menuitem-margin: 4px;
--uc-autocomplete-panel-menuicon-padding-inline: 12px;
--uc-autocomplete-panel-menuicon-padding-inline: 14px;
--uc-autocomplete-panel-separator-margin-vertical: 4px;
--uc-arrowpanel-menuitem-margin-inline: 4px;
--uc-panel-zoom-padding-block: var(--panel-separator-margin-vertical);
}
/* app menu */
@ -22,7 +24,8 @@
.panel-banner-item {
margin: 0 4px 4px !important;
padding-inline: 4px 12px !important;
border-radius: 2px !important;
padding-block: var(--arrowpanel-menuitem-padding-block) !important;
border-radius: var(--arrowpanel-menuitem-border-radius) !important;
}
#appMenu-fxa-label2>vbox>label {
@ -57,16 +60,24 @@
border-radius: 99px;
}
/* disable proton account separator */
#appMenu-fxa-separator {
border-image: none !important;
}
#appMenu-fxa-status2:not([fxastatus]) {
padding-block: 0 !important;
}
#appMenu-fxa-status2:not([fxastatus])>#appMenu-fxa-label2 {
margin-inline-end: calc(var(--arrowpanel-menuitem-padding-inline) * -1) !important;
}
/* zoom controls */
#appMenu-zoom-controls2 {
border-top: 1px solid var(--panel-separator-color) !important;
padding: 0 0 0 var(--arrowpanel-menuitem-padding-inline) !important;
padding-inline: calc(var(--arrowpanel-menuitem-padding-inline) + var(--uc-arrowpanel-menuitem-margin-inline)) var(--uc-arrowpanel-menuitem-margin-inline) !important;
padding-block: var(--uc-panel-zoom-padding-block) !important;
margin: var(--panel-separator-margin-vertical) 0 calc(var(--panel-separator-margin-vertical) * -1) !important;
}
@ -79,9 +90,19 @@
padding: var(--uc-panel-zoom-button-padding) calc(var(--uc-panel-zoom-button-padding) / 2) !important;
}
#appMenu-zoomReduce-button2,
#appMenu-fullscreen-button2 {
border-inline-start: 1px solid var(--panel-separator-color) !important;
/* #appMenu-zoomReduce-button2, */
#appMenu-zoom-controls2>#appMenu-fullscreen-button2 {
margin-left: calc(var(--panel-separator-margin-vertical) * 2 + 1px) !important;
}
#appMenu-zoom-controls2>#appMenu-fullscreen-button2::before {
content: "";
border-inline-start: 1px solid var(--panel-separator-color);
display: block;
position: relative;
height: 32px;
margin-block: calc(var(--uc-panel-zoom-button-padding) * -1);
transform: translateX(calc(var(--uc-panel-zoom-button-inline-padding) * -1 - var(--panel-separator-margin-vertical) - 1px));
}
#appMenu-zoomReset-button2 {
@ -89,23 +110,17 @@
min-height: calc(16px + var(--uc-panel-zoom-button-padding) * 2) !important;
}
#appMenu-zoomReset-button2:not([disabled], [open], :active):is(:hover) {
background-color: var(--panel-item-hover-bgcolor) !important;
}
#appMenu-zoomReset-button2:not([disabled]):is([open], :hover:active) {
background-color: var(--panel-item-active-bgcolor) !important;
}
#appMenu-zoomReduce-button2:not([disabled], [open], :active):is(:hover),
#appMenu-zoomEnlarge-button2:not([disabled], [open], :active):is(:hover),
#appMenu-fullscreen-button2:not([disabled], [open], :active):is(:hover) {
#appMenu-fullscreen-button2:not([disabled], [open], :active):is(:hover),
#appMenu-zoomReset-button2:not([disabled], [open], :active):is(:hover) {
background-color: var(--panel-item-hover-bgcolor) !important;
}
#appMenu-zoomReduce-button2:not([disabled]):is([open], :hover:active),
#appMenu-zoomEnlarge-button2:not([disabled]):is([open], :hover:active),
#appMenu-fullscreen-button2:not([disabled]):is([open], :hover:active) {
#appMenu-fullscreen-button2:not([disabled]):is([open], :hover:active),
#appMenu-zoomReset-button2:not([disabled]):is([open], :hover:active) {
background-color: var(--panel-item-active-bgcolor) !important;
}
@ -117,6 +132,7 @@
#appMenu-fullscreen-button2>.toolbarbutton-icon {
background-color: transparent !important;
padding: 0 !important;
}
/* URL bar popup */
@ -150,9 +166,9 @@
margin-block-start: 0 !important;
}
.subviewbutton-back {
.panel-header>.subviewbutton-back {
margin: 0 !important;
border-radius: 2px !important;
padding: var(--arrowpanel-menuitem-padding-block) !important;
}
.panel-subview-footer-button {
@ -184,34 +200,27 @@
#downloadsListBox>richlistitem {
padding-inline-end: 8px !important;
border-radius: 0 !important;
border-radius: var(--arrowpanel-menuitem-border-radius) !important;
}
#downloadsListBox,
.downloadsPanelFooterButton {
margin: var(--arrowpanel-menuitem-margin) !important;
}
#downloadsPanel-blockedSubview,
#downloadsPanel-mainView {
padding: var(--panel-separator-margin-vertical) 0 0 !important;
padding: var(--panel-separator-margin-vertical) 0 !important;
}
#emptyDownloads {
padding: 1.5em 16px 1.7em !important;
}
/* context menus */
@media (-moz-windows-compositor) {
menupopup {
--panel-color: var(--arrowpanel-color) !important;
--panel-border-radius: 4px !important;
--panel-padding: 4px 0px !important;
--panel-border-color: var(--arrowpanel-border-color) !important;
--panel-background: var(--arrowpanel-background) !important;
--nested-margin: -6px !important;
--menuitem-hover-background-color: var(--panel-item-hover-bgcolor) !important;
--menu-background-color: var(--arrowpanel-background) !important;
--menu-color: var(--arrowpanel-color) !important;
--menuitem-disabled-hover-background-color: #0000 !important;
--menu-disabled-color: var(--panel-disabled-color) !important;
--menu-border-color: var(--panel-separator-color) !important;
}
.PanelUI-subView .subviewbutton-nav::after,
#PlacesToolbar menu>.menu-right,
.subviewbutton>.menu-right {
fill-opacity: 1 !important;
}
/* auto complete popup */
@ -221,25 +230,279 @@
box-shadow: 0 0 0 1px inset var(--arrowpanel-border-color) !important;
}
.autocomplete-richlistitem[originaltype="loginsFooter"] {
#PopupAutoComplete .autocomplete-richlistitem[originaltype="loginsFooter"] {
-moz-box-pack: start !important;
color: inherit !important;
border: 0 !important;
border-color: var(--panel-separator-color) !important;
background-color: transparent !important;
height: 40px !important;
padding-inline-start: var(--uc-autocomplete-panel-menuicon-padding-inline) !important;
height: 28px !important;
min-height: 28px !important;
padding-inline-start: var(--arrowpanel-menuitem-padding-inline) !important;
position: relative !important;
overflow: visible !important;
margin-top: calc(var(--panel-separator-margin-vertical) * 2 + 1px) !important;
}
.autocomplete-richlistitem:hover {
.autocomplete-richlistitem[originaltype="loginsFooter"]::before {
content: "";
width: calc(100% + var(--uc-arrowpanel-menuitem-margin-inline) * 2);
border-top: 1px solid var(--panel-separator-color);
position: absolute;
top: calc(var(--panel-separator-margin-vertical) * -1 - 1px);
left: calc(var(--uc-arrowpanel-menuitem-margin-inline) * -1);
}
#PopupAutoComplete .autocomplete-richlistitem:hover {
background-color: var(--panel-item-hover-bgcolor) !important;
}
.autocomplete-richlistitem[selected] {
#PopupAutoComplete .autocomplete-richlistitem[selected] {
background-color: var(--panel-item-active-bgcolor) !important;
color: inherit !important;
}
.ac-site-icon {
fill: currentColor !important;
margin: auto var(--uc-autocomplete-panel-menuicon-padding-inline) !important;
margin-block: auto !important;
margin-inline: 0 var(--uc-autocomplete-panel-menuicon-padding-inline) !important;
}
#PopupAutoComplete>richlistbox>richlistitem>.ac-title {
margin-inline: calc(16px + var(--uc-autocomplete-panel-menuicon-padding-inline)) !important;
}
#PlacesToolbar menuitem,
#PlacesToolbar menu,
.subview-subheader,
panelview .toolbarbutton-1,
.subviewbutton,
.widget-overflow-list .toolbarbutton-1 {
min-height: calc(16px + var(--arrowpanel-menuitem-padding-block) * 2) !important;
}
/* Context Menu */
menupopup,
menupopup menuitem,
menupopup menu,
menupopup menuseparator,
panel {
-moz-appearance: none !important;
}
menupopup,
panel[type="autocomplete-richlistbox"],
menulist>menupopup>menucaption {
-moz-window-shadow: none !important;
background: 0 !important;
border: 0 !important;
color: var(--arrowpanel-color) !important;
}
.popup-internal-box,
panel[type="autocomplete-richlistbox"]>.autocomplete-richlistbox,
.menupopup-arrowscrollbox {
background: var(--arrowpanel-background) !important;
border: 0 !important;
}
/* make room for menu shadow */
menupopup {
padding: 8px 16px 26px !important;
margin: -12px -16px -22px !important;
}
/* cut off shadow so it doesn't get in the way of the menubar items */
menubar menupopup {
padding: 1px 10px 26px !important;
margin: -1px -10px -22px !important;
}
.menupopup-arrowscrollbox {
box-shadow:
0 10px 16px #0003,
0 4px 5px #0002,
0 2px 4px #0002,
0 0 0 1px #0001 !important;
}
/* no way to get current firefox theme, using prefers-color-scheme instead */
@media (prefers-color-scheme:dark) {
.menupopup-arrowscrollbox {
box-shadow:
0 10px 18px #0003,
0 4px 5px #0003,
0 2px 4px #0002,
0 0 0 1px #0002 !important;
}
}
.popup-internal-box,
panel[type="autocomplete-richlistbox"]>.autocomplete-richlistbox,
.menupopup-arrowscrollbox {
margin: 0 !important;
padding: var(--panel-subview-body-padding) !important;
border-radius: var(--arrowpanel-border-radius) !important;
color: inherit !important;
}
menupopup menu[disabled="true"],
menupopup menuitem[disabled="true"] {
color: var(--panel-disabled-color) !important;
background: none !important;
}
menupopup menu:hover:not([disabled=true]),
menupopup menuitem:hover:not([disabled=true]),
menupopup menu[_moz-menuactive]:not([disabled=true]),
menupopup menuitem[_moz-menuactive]:not([disabled=true]) {
background-color: var(--panel-item-hover-bgcolor) !important;
color: inherit !important;
}
menupopup menuitem:hover:active:not([disabled=true]),
menupopup menu:hover:active:not([disabled=true]) {
background-color: var(--panel-item-active-bgcolor) !important;
color: inherit !important;
}
menupopup menuseparator {
margin: var(--panel-separator-margin-vertical) 0 !important;
padding: 0 !important;
background: none !important;
border-top: 1px solid var(--panel-separator-color) !important;
}
#PlacesToolbar menupopup[placespopup="true"] menuseparator::before {
display: none !important;
}
menupopup menu,
menupopup menuitem,
menupopup menucaption,
#PopupAutoComplete>richlistbox>richlistitem {
padding: var(--arrowpanel-menuitem-padding-block) var(--arrowpanel-menuitem-padding-inline) !important;
margin: var(--arrowpanel-menuitem-margin) !important;
border-radius: var(--arrowpanel-menuitem-border-radius) !important;
}
:not(:not(menubar)>menu, #ContentSelectDropdown)>menupopup>menuitem:not(.menuitem-iconic, [type="checkbox"], [type="radio"], .in-menulist, .in-menulist menuitem, .unified-nav-current),
:not(:not(menubar)>menu, #ContentSelectDropdown)>menupopup>menu:not(.menu-iconic, [type="checkbox"], [type="radio"], .in-menulist, .in-menulist menu, .unified-nav-current) {
padding-inline-start: calc(var(--arrowpanel-menuitem-padding-inline) + 16px + var(--uc-arrowpanel-menuicon-margin-inline)) !important;
}
.menu-iconic-icon {
margin-block: 0 !important;
margin-inline-end: 0 !important;
margin-inline-start: 0 !important;
}
.subviewbutton>.menu-iconic-text,
menu>.menu-iconic-text,
menuitem>.menu-iconic-text,
.addon-banner-item>.toolbarbutton-text,
.subviewbutton-iconic>.toolbarbutton-text,
.subviewbutton[image]>.toolbarbutton-text,
.subviewbutton[targetURI]>.toolbarbutton-text,
.subviewbutton.bookmark-item>.toolbarbutton-text,
.subviewbutton[checked="true"]>.toolbarbutton-text {
padding-inline-start: var(--uc-arrowpanel-menuicon-margin-inline) !important;
}
.menu-text,
.menu-iconic-text {
margin-inline-start: 0 !important;
padding-block: 0 !important;
}
.menu-iconic-left {
padding-inline-end: 0 !important;
}
menuitem:is(.menuitem-iconic:not([data-usercontextid]), [type="checkbox"], [type="radio"], [checked], [selected]) .menu-iconic-icon {
-moz-context-properties: fill !important;
fill: currentColor !important;
}
.menu-right,
.menu-accel-container {
appearance: none !important;
margin-inline-end: 0 !important;
-moz-context-properties: fill;
fill: currentColor !important;
}
menupopup menuitem:is([type="checkbox"], [type="radio"]) .menu-iconic-icon,
menulist>menupopup>menuitem .menu-iconic-icon,
menu .menu-right {
height: 16px !important;
width: 16px !important;
}
menulist>menupopup>menuitem:is([checked="true"], [selected="true"])::before {
display: none !important;
}
/* workaround for inaccessible shadow-root element
moves the shadow-root element underneath, and away from panel edges */
#PopupAutoComplete {
padding-block: 10px !important;
padding-inline: 2px !important;
}
panel[type="autocomplete-richlistbox"]>.autocomplete-richlistbox {
margin-block: -10px !important;
margin-inline: -2px !important;
}
#PopupAutoComplete>richlistbox>richlistitem>.two-line-wrapper {
padding-block: 0 !important;
padding-inline-end: calc((var(--uc-autocomplete-panel-menuitem-margin) + var(--arrowpanel-menuitem-padding-inline)) * 2) !important;
}
menuitem:is([type="checkbox"], [checked="true"], [type="radio"])>.menu-iconic-left>.menu-iconic-icon {
display: -moz-box !important;
}
menuitem[checked="true"]>.menu-iconic-left,
.menu-iconic>.menu-iconic-left,
.menuitem-iconic>.menu-iconic-left {
margin: 0 !important;
}
#context-navigation:not([hidden]) {
padding: 0 !important;
--menuitem-min-width: calc(16px + var(--arrowpanel-menuitem-padding-inline) * 2) !important;
min-width: calc(4 * var(--menuitem-min-width));
}
#context-navigation>.menuitem-iconic>.menu-iconic-left>.menu-iconic-icon {
width: 16px !important;
height: 16px !important;
padding: 0 !important;
}
#context-navigation {
margin-inline: var(--uc-arrowpanel-menuitem-margin-inline) !important;
}
#context-navigation>.menuitem-iconic {
-moz-box-pack: center !important;
}
#context-navigation>.menuitem-iconic {
margin: 0 !important;
}
#context-navigation>.menuitem-iconic {
flex-grow: 1 !important;
width: unset !important;
}
#context-navigation>.menuitem-iconic[_moz-menuactive="true"]>.menu-iconic-left>.menu-iconic-icon {
background-color: transparent !important;
}
#context-bookmarkpage[starred] .menu-iconic-icon {
fill: var(--lwt-toolbarbutton-icon-fill-attention, var(--toolbarbutton-icon-fill-attention, currentColor)) !important;
}