gecko-dev/browser/themes/shared/customizableui/panelUI.inc.css

2391 строка
63 KiB
CSS

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
%filter substitution
%define menuPanelWidth 22.35em
%define wideMenuPanelWidth 29em
%define standaloneSubviewWidth 30em
% XXXgijs This is the ugliest bit of code I think I've ever written for Mozilla.
% Basically, the 0.1px is there to avoid CSS rounding errors causing buttons to wrap.
% For gory details, refer to https://bugzilla.mozilla.org/show_bug.cgi?id=963365#c11
% There's no calc() here (and therefore lots of calc() where this is used) because
% we don't support nested calc(): https://bugzilla.mozilla.org/show_bug.cgi?id=968761
%define menuPanelButtonWidth (@menuPanelWidth@ / 3 - 0.1px)
%define buttonStateHover :not(:is([disabled],[open],:active)):is(:hover,:focus)
%define menuStateHover :not(:is([disabled],:active))[_moz-menuactive]
%define buttonStateActive :not([disabled]):is([open],:hover:active)
%define menuStateActive :not([disabled])[_moz-menuactive]:active
%define menuStateMenuActive :not([disabled])[_moz-menuactive]
%define inAnyPanel :is(:not([cui-areatype="toolbar"]), [overflowedItem=true])
%define panelPaletteIconSize 16px
%define appmenuWarningBackgroundColor #FFEFBF
%define appmenuWarningBackgroundColorHover #FFE8A2
%define appmenuWarningBackgroundColorActive #FFE38F
%define appmenuWarningColor black
%define appmenuWarningBorderColor hsl(45,100%,77%)
%define appmenuWarningBackgroundColorBrightText hsla(55,100%,50%,.1)
%define appmenuWarningBackgroundColorHoverBrightText hsla(55,100%,50%,.15)
%define appmenuWarningBackgroundColorActiveBrightText hsla(55,100%,50%,.2)
%define appmenuWarningColorBrightText #F9F9FA
:root:not([uidensity=compact]):not([chromehidden~="toolbar"]) #PanelUI-button {
margin-inline-start: 3px;
border-inline-start: 1px solid;
border-image: linear-gradient(
transparent 4px,
var(--lwt-toolbar-vertical-separator, rgba(0,0,0,.1)) 4px,
var(--lwt-toolbar-vertical-separator, rgba(0,0,0,.1)) calc(100% - 4px),
transparent calc(100% - 4px)
);
border-image-slice: 1;
}
:root:not([uidensity=compact]):not([chromehidden~="toolbar"]) #nav-bar[brighttext] > #PanelUI-button {
border-image-source: linear-gradient(
transparent 4px,
var(--lwt-toolbar-vertical-separator, rgba(255,255,255,.2)) 4px,
var(--lwt-toolbar-vertical-separator, rgba(255,255,255,.2)) calc(100% - 4px),
transparent calc(100% - 4px)
);
}
#PanelUI-menu-button[badge-status] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
display: -moz-box;
height: 10px;
width: 10px;
background-size: contain;
border: none;
}
#PanelUI-menu-button[badge-status="extension-new-tab"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="download-success"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
display: none;
}
#PanelUI-menu-button[badge-status="update-available"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-downloading"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-manual"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-restart"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-unsupported"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
border-radius: 50%;
box-shadow: none;
/* "!important" is necessary to override the rule in toolbarbutton.css */
margin: -7px 0 0 !important;
margin-inline-end: -4px !important;
min-width: 12px;
min-height: 12px;
}
#PanelUI-menu-button[badge-status="update-available"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-downloading"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-manual"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="update-restart"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
background: #74BF43 url(chrome://browser/skin/update-badge.svg) no-repeat center;
}
#PanelUI-menu-button[badge-status="update-unsupported"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
background: #FFE900 url(chrome://browser/skin/update-badge.svg) no-repeat center;
}
.panel-banner-item[notificationid="update-available"]::after,
.panel-banner-item[notificationid="update-downloading"]::after,
.panel-banner-item[notificationid="update-manual"]::after,
.panel-banner-item[notificationid="update-restart"]::after {
background: #74BF43 url(chrome://browser/skin/update-badge.svg) no-repeat center;
border-radius: 50%;
}
.panel-banner-item[notificationid="update-unsupported"]::after {
background: #FFE900 url(chrome://browser/skin/update-badge.svg) no-repeat center;
border-radius: 50%;
}
.panel-banner-item[notificationid^=update] {
list-style-image: url(chrome://branding/content/icon16.png);
}
#PanelUI-menu-button[badge-status="addon-alert"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#PanelUI-menu-button[badge-status="fxa-needs-authentication"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
height: 13px;
background: url(chrome://browser/skin/warning.svg) center / contain no-repeat transparent;
box-shadow: none;
border-radius: 0;
/* Use the included fallbacks defined in the SVG file instead of inheriting from .toolbarbutton-1. */
-moz-context-properties: none;
}
#PanelUI-menu-button[badge-status] > .toolbarbutton-badge-stack > .toolbarbutton-badge:-moz-window-inactive {
filter: grayscale(100%);
}
#nav-bar[brighttext] #PanelUI-menu-button[badge-status="addon-alert"] > .toolbarbutton-badge-stack > .toolbarbutton-badge,
#nav-bar[brighttext] #PanelUI-menu-button[badge-status="fxa-needs-authentication"] > .toolbarbutton-badge-stack > .toolbarbutton-badge {
-moz-context-properties: fill, stroke;
fill: #FFE900;
stroke: transparent;
}
.cui-widget-panel,
#widget-overflow {
font: menu;
}
panelview {
-moz-box-orient: vertical;
-moz-box-flex: 1;
background: var(--arrowpanel-background);
padding: 0;
}
/* This section is to anchor all the drop down panels at the same height, shift the
panel`s top margin according to its positioning and the uidensity of the window. */
#downloadsPanel,
#widget-overflow,
#appMenu-popup,
#customizationui-widget-panel,
#protections-popup {
margin-top: -6px;
}
/* The difference between the toolbar buttons` padding and the urlbar-icons` padding,
then subtract 6px. */
#pageActionActivatedActionPanel,
#pageActionPanel,
#editBookmarkPanel,
.browser-extension-panel {
margin-top: calc(var(--toolbarbutton-inner-padding) - var(--urlbar-icon-padding) - 6px)
}
/* The identity popup does not have any padding of its own,
otherwise would use the same formula as above. */
#identity-popup {
margin-top: calc(var(--toolbarbutton-inner-padding) - 6px);
}
/* The bookmarks toolbar is too thin to have the panels overlap 6px. */
#downloadsPanel.bookmarks-toolbar,
#widget-overflow.bookmarks-toolbar,
#appMenu-popup.bookmarks-toolbar,
#customizationui-widget-panel.bookmarks-toolbar {
margin-top: -1px;
}
/* The BMB_bookmarksPopup is unique because it is built into the
bookmarks-menu-button, resulting in many edge cases. */
#BMB_bookmarksPopup {
margin-top: -8px;
}
:root:not([uidensity]) #nav-bar #BMB_bookmarksPopup {
margin-top: -11px;
}
:root[uidensity=touch] #nav-bar #BMB_bookmarksPopup,
:root[uidensity=touch] #TabsToolbar #BMB_bookmarksPopup,
:root[uidensity=compact] #BMB_bookmarksPopup {
margin-top: -9px;
}
:root[uidensity=compact] #TabsToolbar #BMB_bookmarksPopup {
margin-top: -7px;
}
#PersonalToolbar #BMB_bookmarksPopup {
margin-top: -2px
}
:root[uidensity=touch] #PersonalToolbar #BMB_bookmarksPopup {
margin-top: -5px;
}
.panel-subview-body {
overflow-y: auto;
overflow-x: hidden;
-moz-box-flex: 1;
padding: 6px 0;
}
.panel-view-body-unscrollable {
overflow: hidden;
-moz-box-flex: 1;
}
.subviewbutton.panel-subview-footer {
box-sizing: border-box;
min-height: 41px;
}
.cui-widget-panelview menuitem.subviewbutton.panel-subview-footer {
margin: 4px 0 0;
}
.cui-widget-panelview .subviewbutton.panel-subview-footer > .menu-text {
-moz-box-flex: 1;
}
.panel-info-button {
appearance: none;
padding: 0;
margin-inline-end: 4px;
border-radius: var(--toolbarbutton-border-radius);
}
.panel-info-button[disabled=true] {
visibility: hidden;
}
.panel-info-button@buttonStateHover@ {
background-color: var(--arrowpanel-dimmed);
}
.panel-info-button:not(:hover)[checked] {
background-color: var(--arrowpanel-dimmed-further);
}
.panel-info-button@buttonStateActive@ {
background-color: var(--arrowpanel-dimmed-even-further);
}
.panel-info-button > image {
list-style-image: url(chrome://global/skin/icons/identity-icon.svg);
-moz-context-properties: fill, fill-opacity;
fill: currentColor;
fill-opacity: var(--toolbarbutton-icon-fill-opacity);
padding: 4px;
}
#wrapper-edit-controls:is([place="palette"],[place="menu-panel"]) > #edit-controls,
#wrapper-zoom-controls:is([place="palette"],[place="menu-panel"]) > #zoom-controls {
margin-inline-start: 0;
}
#BMB_bookmarksPopup {
max-width: @standaloneSubviewWidth@;
}
#BMB_bookmarksPopup::part(arrowscrollbox) {
padding: 0;
}
/* Remove padding on xul:arrowscrollbox to avoid extra padding on footer */
#BMB_bookmarksPopup menupopup::part(arrowscrollbox) {
padding-bottom: 0;
}
#BMB_bookmarksPopup menupopup[nofooterpopup=true]::part(arrowscrollbox) {
padding-bottom: 4px;
}
%ifndef XP_MACOSX
/* Add some space at the top because there are no headers in menupopups of
the bookmarks menu. */
#BMB_bookmarksPopup menupopup::part(arrowscrollbox-scrollbox) {
padding-top: 4px;
}
%endif
#confirmation-hint {
--arrowpanel-background: #0060df;
--arrowpanel-border-color: #0060df;
--arrowpanel-color: #fff;
--arrowpanel-padding: 6px 10px;
font-weight: 400;
font-size: 1.1rem;
}
#confirmation-hint::part(arrowcontent) {
-moz-box-align: center;
}
#confirmation-hint[hidearrow]::part(arrowbox) {
/* Don't display the arrow but keep the popup at the same vertical
offset as other arrow panels. */
visibility: hidden;
}
#confirmation-hint-checkmark-animation-container {
position: relative;
overflow: hidden;
width: 14px;
height: 14px;
}
/* Don't show the checkmark if there is a description */
#confirmation-hint.with-description #confirmation-hint-checkmark-animation-container {
display: none;
}
#confirmation-hint-checkmark-animation-container[animate] > #confirmation-hint-checkmark-image {
display: block;
position: absolute;
background-image: url(chrome://browser/skin/check-animation.svg);
background-repeat: no-repeat;
min-width: 266px;
max-width: 266px;
min-height: 14px;
max-height: 14px;
animation-name: confirmation-hint-checkmark-animation;
animation-fill-mode: forwards;
animation-timing-function: steps(18);
}
#confirmation-hint[data-message-id="loginRemoved"] #confirmation-hint-checkmark-image {
background-image: url("chrome://global/skin/icons/delete.svg");
background-size: contain;
-moz-context-properties: fill;
fill: #FFF;
animation: none;
}
#confirmation-hint-checkmark-animation-container[animate] > #confirmation-hint-checkmark-image:-moz-locale-dir(rtl) {
animation-name: confirmation-hint-checkmark-animation-rtl;
transform: translateX(252px);
}
@media (prefers-reduced-motion: no-preference) {
#confirmation-hint-checkmark-animation-container[animate] > #confirmation-hint-checkmark-image {
animation-duration: 300ms;
animation-delay: 60ms;
}
}
@keyframes confirmation-hint-checkmark-animation {
from {
transform: translateX(0);
}
to {
transform: translateX(-252px);
}
}
@keyframes confirmation-hint-checkmark-animation-rtl {
from {
transform: translateX(252px);
}
to {
transform: translateX(0);
}
}
#confirmation-hint-message {
margin-inline: 7px 0;
}
#confirmation-hint.with-description #confirmation-hint-message {
font-size: 1.2em;
font-weight: 600;
}
@media (prefers-reduced-motion: no-preference) {
#confirmation-hint-message-container {
transform: scale(.8);
opacity: 0;
transition: transform 120ms cubic-bezier(.25,1.27,.35,1.18),
opacity 60ms linear;
}
#confirmation-hint-checkmark-animation-container[animate] + #confirmation-hint-message-container {
transform: scale(1);
opacity: 1;
}
}
panelview[id^=PanelUI-webext-] {
overflow: hidden;
}
panelview:not([mainview]) .toolbarbutton-text,
.cui-widget-panel .toolbarbutton-text,
#overflowMenu-customize-button > .toolbarbutton-text {
text-align: start;
display: -moz-box;
}
.cui-widget-panel,
.cui-widget-panel::part(arrowcontent) {
--arrowpanel-padding: 4px 0;
}
#appMenu-popup panelview,
#customizationui-widget-multiview panelview:not([extension]) {
min-width: @menuPanelWidth@;
max-width: 35em;
}
#customizationui-widget-multiview #appMenu-libraryView,
#pageActionPanel panelview,
#widget-overflow panelview {
min-width: @wideMenuPanelWidth@;
max-width: @wideMenuPanelWidth@;
}
/* Add 2 * 16px extra width for touch mode button padding. */
#appMenu-popup[touchmode] panelview {
min-width: calc(@menuPanelWidth@ + 32px);
}
.cui-widget-panel.cui-widget-panelWithFooter::part(arrowcontent) {
padding-bottom: 0;
}
.toolbaritem-combined-buttons@inAnyPanel@ > toolbarbutton > .toolbarbutton-icon {
min-width: 0;
min-height: 0;
margin: 0;
}
.animate-out {
animation-name: widget-animate-out;
animation-fill-mode: forwards;
animation-duration: 500ms;
animation-timing-function: var(--animation-easing-function);
}
@keyframes widget-animate-out {
0% {
opacity: 1;
transform: scale(1);
}
100% {
opacity: 0 ;
transform: scale(.5);
}
}
toolbarpaletteitem[place="menu-panel"] > .toolbarbutton-1 {
-moz-box-flex: 1;
}
/* Help webextension buttons fit in. */
toolbarpaletteitem[place="palette"] > toolbarbutton[constrain-size="true"] > .toolbarbutton-icon,
toolbarpaletteitem[place="palette"] > toolbarbutton[constrain-size="true"] > .toolbarbutton-badge-stack > .toolbarbutton-icon,
toolbarbutton[constrain-size="true"][cui-areatype="menu-panel"] > .toolbarbutton-icon,
toolbarbutton[constrain-size="true"][cui-areatype="menu-panel"] > .toolbarbutton-badge-stack > .toolbarbutton-icon {
height: @panelPaletteIconSize@;
width: @panelPaletteIconSize@;
}
#customization-palette .toolbarbutton-1 {
appearance: none;
-moz-box-orient: vertical;
padding: 12px 0 9px;
margin: 0;
}
/* above we treat the container as the icon for the margins, that is so the
/* badge itself is positioned correctly. Here we make sure that the icon itself
/* has the minimum size we want, but no padding/margin. */
.customization-palette .toolbarbutton-1 > .toolbarbutton-badge-stack > .toolbarbutton-icon {
width: @panelPaletteIconSize@;
height: @panelPaletteIconSize@;
min-width: @panelPaletteIconSize@;
min-height: @panelPaletteIconSize@;
margin: 0;
padding: 0;
}
#zoom-in-button > .toolbarbutton-text,
#zoom-out-button > .toolbarbutton-text,
#zoom-reset-button > .toolbarbutton-icon {
display: none;
}
.addon-banner-item::after,
.panel-banner-item::after {
content: "";
width: 16px;
height: 16px;
margin-inline: 10px 12px;
display: -moz-box;
}
.addon-banner-item {
background-color: @appmenuWarningBackgroundColor@;
color: @appmenuWarningColor@;
/* Force border to override `.addon-banner-item` selector below */
border-top: 1px solid @appmenuWarningBorderColor@ !important;
display: flex;
flex: 1 1 0%;
width: calc(@menuPanelWidth@ + 30px);
padding-inline-start: 15px;
border-inline-start-style: none;
-moz-image-region: rect(0, 16px, 16px, 0);
}
.addon-banner-item:last-child {
border-bottom: 1px solid @appmenuWarningBorderColor@;
}
.addon-banner-item:focus,
.addon-banner-item:hover {
background-color: @appmenuWarningBackgroundColorHover@;
}
.addon-banner-item:hover:active {
background-color: @appmenuWarningBackgroundColorActive@;
}
.addon-banner-item > .toolbarbutton-icon {
width: 16px;
height: 16px;
}
.addon-banner-item::after {
background: url(chrome://browser/skin/warning.svg) no-repeat center;
}
:root[lwt-popup-brighttext] .addon-banner-item::after {
-moz-context-properties: fill, stroke;
fill: #FFE900;
stroke: transparent;
}
.addon-banner-item,
.panel-banner-item {
margin: 0;
padding: 11px 0;
box-sizing: border-box;
min-height: 40px;
appearance: none;
box-shadow: none;
border: none;
border-radius: 0;
transition: background-color;
-moz-box-orient: horizontal;
}
.panel-banner-item {
border-block: 1px solid var(--panel-separator-color);
padding-inline-start: 12px;
}
#appMenu-addon-banners:not(:empty) + .panel-banner-item {
/* Overlap the .addon-banner-item border so there's one border. */
margin-top: -1px;
}
#appMenu-addon-banners > .addon-banner-item {
padding-inline-start: 12px;
}
.panel-banner-item > .toolbarbutton-text {
width: 0; /* Fancy cropping solution for flexbox. */
}
.panel-banner-item > .toolbarbutton-icon {
width: 16px;
}
#appMenu-addon-banners:not(:empty) ~ #appMenu-fxa-status,
.panel-banner-item:not([hidden]) + #appMenu-fxa-status {
margin-top: 6px;
}
/* FxAccount indicator bits. */
#appMenu-fxa-label {
-moz-context-properties: fill;
fill: currentColor;
list-style-image: var(--avatar-image-url);
}
#appMenu-fxa-label {
-moz-box-flex: 1;
}
@keyframes syncRotate {
from { transform: rotate(0); }
to { transform: rotate(360deg); }
}
#PanelUI-fxa-menu-syncnow-button[syncstatus="active"] > .toolbarbutton-icon,
#PanelUI-remotetabs-syncnow[syncstatus="active"] > .toolbarbutton-icon {
animation: syncRotate 0.8s linear infinite;
fill: var(--toolbarbutton-icon-fill-attention);
}
#appMenu-fxa-status {
-moz-box-align: center;
}
:root[fxadisabled=true] #appMenu-fxa-status {
display: none;
}
#appMenu-fxa-avatar,
#fxa-menu-account-fxa-avatar {
pointer-events: none;
list-style-image: var(--avatar-image-url);
-moz-context-properties: fill;
fill: currentColor;
}
#PanelUI-fxa-menu-account-signout-button {
list-style-image: url(chrome://browser/skin/sign-out.svg);
}
/* Handle different UI states. */
#appMenu-fxa-status[fxastatus="signedin"] > #appMenu-fxa-label > .toolbarbutton-icon,
#appMenu-fxa-status:not([fxastatus="signedin"]) > #appMenu-fxa-avatar,
:root:not([fxastatus="signedin"]) #PanelUI-fxa-menu-syncnow-button {
display: none;
}
#appMenu-fxa-status[fxastatus="signedin"] > #appMenu-fxa-label {
/* 12px space before the avatar, then 16px for the avatar */
padding-inline-start: 28px;
margin-inline-start: -28px;
}
#appMenu-fxa-status[fxastatus="signedin"] > #appMenu-fxa-avatar {
margin-inline-start: 12px;
}
/* Error states */
#appMenu-fxa-status[fxastatus="unverified"] > #appMenu-fxa-label,
#appMenu-fxa-status[fxastatus="login-failed"] > #appMenu-fxa-label {
list-style-image: url(chrome://browser/skin/warning.svg);
-moz-image-region: rect(0, 16px, 16px, 0);
}
#appMenu-fxa-status[fxastatus="login-failed"],
#appMenu-fxa-status[fxastatus="unverified"],
:root[fxastatus="login-failed"] .fxa-menu-header,
:root[fxastatus="unverified"] .fxa-menu-header {
background-color: @appmenuWarningBackgroundColor@;
color: @appmenuWarningColor@;
border-block: 1px solid @appmenuWarningBorderColor@;
}
#appMenu-fxa-status[fxastatus="login-failed"]:hover,
#appMenu-fxa-status[fxastatus="unverified"]:hover,
:root[fxastatus="login-failed"] .fxa-menu-header:hover,
:root[fxastatus="unverified"] .fxa-menu-header:hover {
background-color: @appmenuWarningBackgroundColorHover@;
}
#appMenu-fxa-status[fxastatus="login-failed"]:hover:active,
#appMenu-fxa-status[fxastatus="unverified"]:hover:active,
:root[fxastatus="login-failed"] .fxa-menu-header:hover:active,
:root[fxastatus="unverified"] .fxa-menu-header:hover:active {
background-color: @appmenuWarningBackgroundColorActive@;
}
/* Tracking Protection Button & Toggle */
#appMenu-protection-report-text {
-moz-context-properties: fill;
fill: currentColor;
-moz-box-flex: 1;
padding: 0;
padding-inline-start: 8px;
margin: 0;
}
#appMenu-protection-report-icon {
list-style-image: url(chrome://browser/skin/controlcenter/dashboard.svg);
}
#appMenu-protection-report-button {
-moz-box-flex: 1;
}
.addon-banner-item > .toolbarbutton-text,
.panel-banner-item > .toolbarbutton-text {
margin: 0;
padding: 0 6px;
text-align: start;
}
.addon-banner-item > .toolbarbutton-icon,
.panel-banner-item > .toolbarbutton-icon {
margin-inline-end: 0;
}
.addon-banner-item {
flex: 1;
padding-inline-start: 15px;
border-inline-start-style: none;
}
:root[lwt-popup-brighttext] .addon-banner-item {
color: @appmenuWarningColorBrightText@;
background: @appmenuWarningBackgroundColorBrightText@;
/* override `.addon-banner-item` border-top !important defined above */
border: 0 !important;
}
:root[lwt-popup-brighttext] .addon-banner-item:hover,
:root[lwt-popup-brighttext] .addon-banner-item:focus {
background: @appmenuWarningBackgroundColorHoverBrightText@;
}
:root[lwt-popup-brighttext] .addon-banner-item:hover:active,
:root[lwt-popup-brighttext] .addon-banner-item:focus:active {
background: @appmenuWarningBackgroundColorActiveBrightText@;
}
:root[lwt-popup-brighttext] #appMenu-fxa-status[fxastatus="login-failed"],
:root[lwt-popup-brighttext] #appMenu-fxa-status[fxastatus="unverified"],
:root[lwt-popup-brighttext][fxastatus="login-failed"] .fxa-menu-header,
:root[lwt-popup-brighttext][fxastatus="unverified"] .fxa-menu-header {
background-color: @appmenuWarningBackgroundColorBrightText@;
color: @appmenuWarningColorBrightText@;
}
:root[lwt-popup-brighttext] #appMenu-fxa-status[fxastatus="login-failed"]:hover,
:root[lwt-popup-brighttext] #appMenu-fxa-status[fxastatus="unverified"]:hover,
:root[lwt-popup-brighttext][fxastatus="login-failed"] .fxa-menu-header:hover,
:root[lwt-popup-brighttext][fxastatus="unverified"] .fxa-menu-header:hover {
background-color: @appmenuWarningBackgroundColorHoverBrightText@;
}
:root[lwt-popup-brighttext] #appMenu-fxa-status[fxastatus="login-failed"]:hover:active,
:root[lwt-popup-brighttext] #appMenu-fxa-status[fxastatus="unverified"]:hover:active,
:root[lwt-popup-brighttext][fxastatus="login-failed"] .fxa-menu-header:hover:active,
:root[lwt-popup-brighttext][fxastatus="unverified"] .fxa-menu-header:hover:active {
background-color: @appmenuWarningBackgroundColorActiveBrightText@;
}
/* Firefox Account Toolbar Panel */
#fxa-avatar-image {
width: 16px;
height: 16px;
}
:root {
--avatar-image-url: url(chrome://browser/skin/fxa/avatar.svg);
}
:root[fxastatus="unverified"] {
--avatar-image-url: url(chrome://browser/skin/fxa/avatar-confirm.svg);
}
:root[fxastatus="login-failed"] {
--avatar-image-url: url(chrome://browser/skin/fxa/avatar-alert.svg);
}
:root[fxastatus="not_configured"] {
--avatar-image-url: url(chrome://browser/skin/fxa/avatar-empty.svg);
}
:root:not([fxatoolbarmenu]) #fxa-toolbar-menu-button {
display: none;
}
#fxa-menu-avatar,
#fxa-avatar-image,
#PanelUI-fxa-menu-account-settings-button {
list-style-image: var(--avatar-image-url);
}
/* Non-signedin statuses icons are not totally round. */
:root[fxastatus="signedin"] #fxa-menu-avatar,
:root[fxastatus="signedin"] #fxa-avatar-image {
border-radius: 50%;
}
.PanelUI-fxa-service-description-label,
.PanelUI-remotetabs-instruction-label {
/* Use 'lighter' font for this to de-emphasize it compared to the title.
* We use 300 on Linux because 100 is too light (lacks contrast with
* the background) for some fonts in combination with anti-aliasing. */
%if defined(XP_MACOSX) || defined(XP_WIN)
font-weight: lighter;
%else
font-weight: 300;
%endif
}
.fxa-menu-header {
padding-block: 8px 4px;
}
#fxa-menu-header-title {
color: var(--arrowpanel-color);
}
#fxa-menu-header-description {
color: var(--panel-disabled-color);
}
#fxa-menu-avatar {
height: 32px;
width: 32px;
-moz-context-properties: fill, fill-opacity;
fill: var(--arrowpanel-color);
}
#PanelUI-fxa-menu-send-button {
list-style-image: url(chrome://browser/skin/fxa/send.svg);
}
#PanelUI-fxa-menu-monitor-button {
list-style-image: url(chrome://browser/skin/fxa/monitor.svg);
}
#PanelUI-fxa-menu-connect-device-button {
list-style-image: url(chrome://browser/skin/fxa/add-device.svg);
}
:root:not([fxastatus="signedin"]) #PanelUI-fxa-menu-connect-device-button {
color: var(--panel-disabled-color);
}
/* From the FxA menu -> synced tabs, we don't need to clutter the view with
redundant buttons because these are accessible from the main menu */
panelmultiview[mainViewId="PanelUI-fxa"] #PanelUI-remotetabs-syncnow {
display: none;
}
#PanelUI-sendTabToDevice > .panel-subview-body:not([state]) > #PanelUI-sendTabToDevice-syncingDevices {
display: none;
}
#PanelUI-fxa-menu-sendtab-button {
list-style-image: url("chrome://browser/skin/send-to-device.svg");
}
#PanelUI-fxa-menu-sendtab-button:-moz-locale-dir(rtl) > .toolbarbutton-icon {
transform: scaleX(-1);
}
.fxaSendLogo,
.fxaMonitorLogo {
margin-top: 15px;
height: 80px;
width: 80px;
}
.fxaSendToDeviceLogo {
margin-top: 15px;
height: 119px;
width: 164px;
list-style-image: url(chrome://browser/skin/fxa/send-to-device.svg);
}
.fxaSendLogo {
list-style-image: url(chrome://browser/content/logos/send.svg);
}
.fxaMonitorLogo {
list-style-image: url(chrome://browser/content/logos/monitor.svg);
}
#PanelUI-remotetabs {
--panel-ui-sync-illustration-height: 141px;
}
.PanelUI-fxa-service-description-label,
.PanelUI-remotetabs-instruction-label {
/* If you change the margin here, the min-height of the synced tabs panel
(e.g. #PanelUI-remotetabs[mainview] #PanelUI-remotetabs-setupsync, etc) may
need adjusting (see bug 1248506) */
margin: 0;
text-align: center;
text-shadow: none;
max-width: 15em;
}
.PanelUI-fxa-service-description-label,
.PanelUI-remotetabs-instruction-label {
margin-top: 10px;
}
.PanelUI-fxa-signin-button,
.PanelUI-remotetabs-button {
appearance: none;
background-color: #0060df;
/* !important for the color as an OSX specific rule when a lightweight theme
is used for buttons in the toolbox overrides. See bug 1238531 for details */
color: white !important;
border-radius: 2px;
/* If you change the margin or padding below, the min-height of the synced tabs
panel (e.g. #PanelUI-remotetabs[mainview] #PanelUI-remotetabs-setupsync,
etc) may need adjusting (see bug 1248506) */
margin-block: 15px;
padding: 8px;
text-shadow: none;
min-width: 200px;
}
.PanelUI-fxa-signin-button,
.PanelUI-remotetabs-button {
padding: 1em;
}
.PanelUI-fxa-signin-button:hover,
.PanelUI-remotetabs-button:hover {
background-color: #003eaa;
}
.PanelUI-fxa-signin-button:hover:active,
.PanelUI-remotetabs-button:hover:active {
background-color: #002275;
}
.remotetabs-promo-link {
margin: 0;
}
.PanelUI-remotetabs-notabsforclient-label {
color: var(--panel-disabled-color);
/* This margin is to line this label up with the labels in toolbarbuttons. */
margin-inline-start: 28px;
}
#PanelUI-remotetabs[mainview] .PanelUI-remotetabs-notabsforclient-label {
margin-inline-start: 32px;
}
.fxaSyncIllustration,
.fxaSyncIllustrationIssue {
/* If you change the margin here, the min-height of the synced tabs panel
(e.g. #PanelUI-remotetabs[mainview] #PanelUI-remotetabs-setupsync, etc) may
need adjusting (see bug 1248506) */
width: 204px;
height: var(--panel-ui-sync-illustration-height);
-moz-context-properties: fill;
fill: #cdcdcd;
}
.fxaSyncIllustration {
list-style-image: url(chrome://browser/skin/fxa/sync-illustration.svg);
}
.fxaSyncIllustrationIssue {
list-style-image: url(chrome://browser/skin/fxa/sync-illustration-issue.svg);
}
.PanelUI-fxa-signin-button > .toolbarbutton-text,
.PanelUI-remotetabs-button > .toolbarbutton-text {
/* !important to override ".cui-widget-panel toolbarbutton > .toolbarbutton-text" above. */
text-align: center !important;
text-shadow: none;
}
#PanelUI-remotetabs[mainview] { /* panel anchored to toolbar button might be too skinny */
min-width: 19em;
}
/* Work around bug 1224412 - these boxes will cause scrollbars to appear when
the panel is anchored to a toolbar button.
*/
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-setupsync,
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-syncdisabled,
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-reauthsync,
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-unverified,
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-nodevicespane,
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-tabsdisabledpane {
min-height: calc(var(--panel-ui-sync-illustration-height) +
15px + /* margin of .fxaSyncIllustration */
30px + /* margin of .PanelUI-remotetabs-button */
8px + /* padding of .PanelUI-remotetabs-button */
1em);
}
.PanelUI-remotetabs-clientcontainer > label[itemtype="client"] {
color: var(--panel-disabled-color);
}
/* Collapse the non-active vboxes in the remotetabs deck to use only the
height the active box needs */
#PanelUI-remotetabs-deck:not([selectedIndex="1"]) > #PanelUI-remotetabs-tabsdisabledpane,
#PanelUI-remotetabs-deck:not([selectedIndex="2"]) > #PanelUI-remotetabs-fetching,
#PanelUI-remotetabs-deck:not([selectedIndex="3"]) > #PanelUI-remotetabs-nodevicespane {
visibility: collapse;
}
#PanelUI-remotetabs-main[devices-status="single"] > #PanelUI-remotetabs-buttons {
display: none;
}
.panel-banner-item {
color: black !important /* !important overrides the toolbarbutton:hover default style on Linux */;
background-color: hsla(96,65%,75%,.5);
}
.panel-banner-item:not([disabled]):focus,
.panel-banner-item:not([disabled]):hover {
background-color: hsla(96,65%,75%,.8);
}
.panel-banner-item:not([disabled]):hover:active {
background-color: hsl(96,65%,75%);
}
:root[lwt-popup-brighttext] .panel-banner-item:not([disabled]) {
background-color: rgba(48,230,11,.1);
color: @appmenuWarningColorBrightText@ !important;
}
:root[lwt-popup-brighttext] .panel-banner-item:not([disabled]):focus,
:root[lwt-popup-brighttext] .panel-banner-item:not([disabled]):hover {
background-color: rgba(48,230,11,.15);
}
:root[lwt-popup-brighttext] .panel-banner-item:not([disabled]):active {
background-color: rgba(48,230,11,.2);
}
.panel-banner-item[notificationid="update-unsupported"] {
background-color: @appmenuWarningBackgroundColor@;
}
.panel-banner-item[notificationid="update-unsupported"]:not([disabled]):focus,
.panel-banner-item[notificationid="update-unsupported"]:not([disabled]):hover {
background-color: @appmenuWarningBackgroundColorHover@;
}
.panel-banner-item[notificationid="update-unsupported"]:not([disabled]):hover:active {
background-color: @appmenuWarningBackgroundColorActive@;
}
:root[lwt-popup-brighttext] .panel-banner-item[notificationid="update-unsupported"]:not([disabled]) {
background-color: @appmenuWarningBackgroundColorBrightText@;
}
:root[lwt-popup-brighttext] .panel-banner-item[notificationid="update-unsupported"]:not([disabled]):focus,
:root[lwt-popup-brighttext] .panel-banner-item[notificationid="update-unsupported"]:not([disabled]):hover {
background-color: @appmenuWarningBackgroundColorHoverBrightText@;
}
:root[lwt-popup-brighttext] .panel-banner-item[notificationid="update-unsupported"]:not([disabled]):active {
background-color: @appmenuWarningBackgroundColorActiveBrightText@;
}
#customization-palette .toolbarbutton-text {
display: none;
}
.subview-subheader,
panelview .toolbarbutton-1,
.subviewbutton,
.widget-overflow-list .toolbarbutton-1 {
appearance: none;
margin: 0;
min-height: 24px;
padding: 4px 12px;
background-color: transparent;
}
.subviewbutton:focus {
outline: 0;
}
.subviewbutton[disabled="true"] {
color: var(--panel-disabled-color);
}
.subviewbutton > .toolbarbutton-text {
padding: 0;
padding-inline-start: 24px; /* This is 16px for the icon + 8px for the padding as defined below. */
}
.subviewbutton > .menu-right {
appearance: none;
list-style-image: url(chrome://browser/skin/customizableui/menu-arrow.svg);
-moz-context-properties: fill, fill-opacity;
fill: currentColor;
/* Reset the rect we inherit from the button */
-moz-image-region: auto;
}
.subviewbutton[disabled="true"] > .menu-right {
fill-opacity: 0.6;
}
.subviewbutton > .menu-right:-moz-locale-dir(rtl) {
transform: scaleX(-1);
}
.subviewbutton > .menu-right,
.subviewbutton > .menu-accel-container > .menu-iconic-accel,
.subviewbutton > .menu-iconic-left,
.subviewbutton > .menu-iconic-text {
padding-block: 0;
}
.addon-banner-item > .toolbarbutton-text,
.subviewbutton-iconic > .toolbarbutton-text,
.subviewbutton[image] > .toolbarbutton-text,
.subviewbutton[targetURI] > .toolbarbutton-text,
.subviewbutton.restoreallitem > .toolbarbutton-text,
.subviewbutton.bookmark-item > .toolbarbutton-text,
.subviewbutton[checked="true"] > .toolbarbutton-text {
padding-inline-start: 8px; /* See '.subviewbutton-iconic > .toolbarbutton-text' rule above. */
}
.subviewbutton-iconic > .toolbarbutton-icon {
width: 16px;
height: 16px;
-moz-context-properties: fill;
fill: currentColor;
}
/* We don't always display: none this item, and if it has forced width (like above)
* or margin, that impacts the position of the label. Fix:
*/
.subviewbutton > .toolbarbutton-icon {
margin: 0;
}
.subviewbutton.panel-subview-footer > .menu-text {
appearance: none;
padding-inline-start: 0 !important; /* to override menu.css on Windows */
padding-inline-end: 6px;
-moz-box-flex: 0;
}
.subviewbutton.panel-subview-footer > .toolbarbutton-text {
padding-inline-start: 0;
}
.subviewbutton.panel-subview-footer > .menu-accel-container {
padding-inline-start: 6px;
}
.subviewbutton > .menu-accel-container > .menu-iconic-accel,
.subviewbutton > .menu-accel-container > .menu-accel {
margin-inline-end: 0 !important; /* to override menu.css on Windows */
}
.subviewbutton[shortcut]::after {
content: attr(shortcut);
float: inline-end;
}
.PanelUI-subView .subviewbutton-nav::after {
-moz-context-properties: fill, fill-opacity;
content: url(chrome://browser/skin/back-12.svg);
fill: currentColor;
fill-opacity: 0.6;
float: inline-end;
transform: translateY(1px);
}
.PanelUI-subView .subviewbutton-nav:-moz-locale-dir(ltr)::after {
transform: scaleX(-1) translateY(1px);
}
.subviewbutton[shortcut]::after,
.subviewbutton[shortcut]::after,
.PanelUI-subView .subviewbutton-nav::after {
margin-inline-start: 10px;
}
.subviewbutton[type="highlight-bookmark"]::after {
content: url("chrome://browser/skin/bookmark-hollow.svg");
}
.subviewbutton[type="highlight-history"]::after {
content: url("chrome://browser/skin/history.svg");
}
.subviewbutton[type="highlight-bookmark"]::after,
.subviewbutton[type="highlight-history"]::after {
-moz-context-properties: fill, fill-opacity;
fill: currentColor;
fill-opacity: 0.4;
float: inline-end;
/* Centers the icon and resizes it to 12px square. */
transform: translateY(2px) scale(.75);
}
.subviewbutton[checked="true"] {
list-style-image: url(chrome://global/skin/icons/check.svg);
-moz-context-properties: fill;
fill: currentColor;
color: inherit;
}
.subviewbutton[type="open-to-new"]::after {
content: url(chrome://browser/skin/open-in-new.svg);
-moz-context-properties: fill, fill-opacity;
fill: currentColor;
fill-opacity: 0.6;
float: inline-end;
height: 12px;
width: 12px;
}
.subviewbutton[type="open-to-new"]:-moz-locale-dir(rtl)::after {
transform: scaleX(-1);
}
/* A menu item with some buttons at the end. */
.toolbaritem-menu-buttons {
/* Use the same margin at the start as at the end (other margin set below). */
margin-inline-start: 8px;
}
.toolbaritem-menu-buttons > .subviewbutton {
min-width: auto;
padding-inline: 5px;
}
.toolbaritem-menu-buttons > .subviewbutton-iconic:not([flex]) > .toolbarbutton-text {
display: none;
}
.toolbaritem-combined-buttons,
.toolbaritem-menu-buttons {
-moz-box-align: center;
-moz-box-orient: horizontal;
border: 0;
border-radius: 0;
margin-inline-end: 8px;
}
panelmultiview .toolbaritem-combined-buttons > label {
-moz-box-flex: 1;
margin: 0;
padding: 4px 0;
}
panelmultiview .toolbaritem-combined-buttons > spacer.before-label {
width: 36px; /* 12px toolbarbutton padding + 16px icon + 8px label padding start */
}
panelmultiview .toolbaritem-combined-buttons > spacer.after-label {
-moz-box-flex: 1;
width: 20px; /* a little bigger than the width of the scrollbar */
}
.PanelUI-subView .toolbaritem-combined-buttons > .subviewbutton {
-moz-box-flex: 0;
height: auto;
margin-inline-start: 18px;
min-width: auto;
padding: 4px 5px;
}
#appMenu-zoom-controls > .subviewbutton {
margin-inline-start: 10px;
}
/* Unset the min-height constraint, because that works better for a text-only button. */
#appMenu-zoomReset-button {
min-height: unset;
border: 1px solid var(--panel-separator-color);
border-radius: 10000px;
padding: 1px 8px;
background-color: var(--arrowpanel-dimmed);
}
#appMenu-zoomReset-button@buttonStateHover@ {
background-color: var(--arrowpanel-dimmed-further);
}
#appMenu-zoomReset-button@buttonStateActive@ {
background-color: var(--arrowpanel-dimmed-even-further);
}
#appMenu-zoomReset-button > .toolbarbutton-text {
min-width: calc(3ch + 8px);
text-align: center;
}
#appMenu-zoom-controls > toolbarseparator[orient="vertical"] + .subviewbutton {
margin-inline-start: 0;
}
.PanelUI-subView .toolbaritem-combined-buttons > .subviewbutton-iconic > .toolbarbutton-text,
.PanelUI-subView .toolbaritem-combined-buttons > .subviewbutton:not(.subviewbutton-iconic) > .toolbarbutton-icon {
display: none;
}
.toolbaritem-combined-buttons > .subviewbutton:not(.subviewbutton-iconic) > .toolbarbutton-text {
padding-inline-start: 0;
}
.subview-subheader {
color: var(--panel-disabled-color);
}
panelview .toolbarbutton-1 {
margin-top: 6px;
}
panelview .toolbarbutton-1@buttonStateHover@,
toolbarbutton.subviewbutton@buttonStateHover@,
.navigable.subviewbutton@buttonStateHover@,
menu.subviewbutton@menuStateHover@,
menuitem.subviewbutton@menuStateHover@,
.widget-overflow-list .toolbarbutton-1@buttonStateHover@,
.toolbaritem-combined-buttons@inAnyPanel@ > toolbarbutton@buttonStateHover@ {
color: inherit;
background-color: var(--arrowpanel-dimmed);
}
panelview .toolbarbutton-1@buttonStateActive@,
toolbarbutton.subviewbutton@buttonStateActive@,
.navigable.subviewbutton@buttonStateActive@,
menu.subviewbutton@menuStateActive@,
menuitem.subviewbutton@menuStateActive@,
.widget-overflow-list .toolbarbutton-1@buttonStateActive@,
.toolbaritem-combined-buttons@inAnyPanel@ > toolbarbutton@buttonStateActive@ {
color: inherit;
background-color: var(--arrowpanel-dimmed-further);
box-shadow: 0 1px 0 hsla(210,4%,10%,.03) inset;
}
.subviewbutton.panel-subview-footer {
margin: 0;
background-color: var(--arrowpanel-dimmed);
border-top: 1px solid var(--panel-separator-color);
border-radius: 0;
}
menuitem.panel-subview-footer@menuStateHover@,
.subviewbutton.panel-subview-footer@buttonStateHover@ {
background-color: var(--arrowpanel-dimmed-further);
}
menuitem.panel-subview-footer@menuStateActive@,
.subviewbutton.panel-subview-footer@buttonStateActive@ {
background-color: var(--arrowpanel-dimmed-even-further);
box-shadow: 0 1px 0 hsla(210,4%,10%,.05) inset;
}
#BMB_bookmarksPopup .subviewbutton:not([disabled="true"]) {
color: inherit;
}
#BMB_bookmarksPopup .subviewbutton > .menu-iconic-left {
margin-inline-end: 3px;
}
#BMB_bookmarksPopup menupopup > .bookmarks-actions-menuseparator {
/* Hide bottom separator as the styled footer includes a top border serving the same purpose */
display: none;
}
/* Disabled (empty) item is always alone and never has an icon, so fix its left padding */
#BMB_bookmarksPopup menupopup[emptyplacesresult] .bookmark-item.subviewbutton {
padding-left: 6px;
}
#widget-overflow-mainView > .panel-subview-body > toolbarseparator,
.PanelUI-subView toolbarseparator,
.cui-widget-panelview menuseparator,
.cui-widget-panel toolbarseparator {
appearance: none;
min-height: 0;
border-top: 1px solid var(--panel-separator-color);
border-bottom: none;
margin: 6px 0;
padding: 0;
}
.PanelUI-subView toolbarseparator.small-separator {
margin-inline: 5px;
}
.cui-widget-panelview menuseparator.small-separator {
margin-inline: 10px;
}
.PanelUI-subView toolbarseparator[orient="vertical"] {
height: 24px;
border-inline-start: 1px solid var(--panel-separator-color);
border-top: none;
margin: 0;
margin-inline: 6px 7px;
}
.subviewbutton > .menu-accel-container {
-moz-box-pack: end;
margin-inline: 10px auto;
}
.PanelUI-remotetabs-clientcontainer > toolbarbutton[itemtype="tab"],
#PanelUI-historyItems > toolbarbutton {
list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.svg");
-moz-context-properties: fill;
fill: currentColor;
}
#appMenu-fxa-avatar,
#fxa-menu-account-fxa-avatar,
#appMenu-fxa-label > .toolbarbutton-icon,
#PanelUI-containersItems > .subviewbutton > .toolbarbutton-icon,
.PanelUI-remotetabs-clientcontainer > toolbarbutton[itemtype="tab"] > .toolbarbutton-icon,
#PanelUI-recentlyClosedWindows > toolbarbutton > .toolbarbutton-icon,
#PanelUI-recentlyClosedTabs > toolbarbutton > .toolbarbutton-icon,
#PanelUI-historyItems > toolbarbutton > .toolbarbutton-icon {
width: 16px;
height: 16px;
}
#appMenu-fxa-avatar,
#PanelUI-fxa-menu-account-settings-button > .toolbarbutton-icon {
border-radius: 50%;
}
#search-container[cui-areatype="menu-panel"] {
padding-block: 6px;
}
toolbarpaletteitem[place="palette"] > #search-container {
min-width: 7em;
width: 7em;
min-height: 37px;
max-height: 37px;
}
.toolbaritem-combined-buttons@inAnyPanel@ > toolbarbutton {
border: 0;
margin: 0;
-moz-box-flex: 1;
padding-block: 4px;
-moz-box-orient: horizontal;
}
/* In customize mode, extend the buttons *only* in the panel, just to make them not look stupid */
toolbarpaletteitem[place="menu-panel"] > .toolbaritem-combined-buttons > toolbarbutton {
min-width: calc(@menuPanelButtonWidth@ - 1px);
max-width: calc(@menuPanelButtonWidth@ - 1px);
}
.toolbaritem-combined-buttons@inAnyPanel@ > toolbarbutton:not(.toolbarbutton-1)[disabled] {
opacity: 0.4;
/* Override toolbarbutton.css which sets the color to GrayText */
color: inherit;
}
#zoom-controls[cui-areatype="toolbar"] > #zoom-reset-button > .toolbarbutton-text {
%ifdef XP_MACOSX
min-width: 6ch;
%else
min-width: 7ch;
%endif
}
.toolbaritem-combined-buttons@inAnyPanel@ > separator {
appearance: none;
-moz-box-align: stretch;
margin: .5em 0;
width: 1px;
height: auto;
background: var(--panel-separator-color);
transition-property: margin;
transition-duration: 10ms;
transition-timing-function: ease;
}
.toolbaritem-combined-buttons@inAnyPanel@:hover > separator {
margin: 0;
}
#widget-overflow-mainView .panel-subview-body {
overflow-y: auto;
overflow-x: hidden;
}
.widget-overflow-list {
width: @wideMenuPanelWidth@;
}
/* In customize mode, the overflow list is constrained by its container,
* so we set width: auto to avoid the scrollbar not fitting.
*/
#customization-panelHolder > .widget-overflow-list {
width: auto;
}
toolbaritem[overflowedItem=true],
.widget-overflow-list .toolbarbutton-1 {
width: 100%;
max-width: @wideMenuPanelWidth@;
background-repeat: no-repeat;
background-position: 0 center;
}
.widget-overflow-list .toolbarbutton-1 {
-moz-box-align: center;
-moz-box-orient: horizontal;
}
.widget-overflow-list .subviewbutton-nav:-moz-locale-dir(ltr)::after {
transform: scaleX(-1);
}
.widget-overflow-list .subviewbutton-nav::after {
margin-inline-start: 10px;
-moz-context-properties: fill, fill-opacity;
content: url(chrome://browser/skin/back-12.svg);
fill: currentColor;
fill-opacity: 0.6;
float: inline-end;
}
toolbarpaletteitem[place="menu-panel"] > .subviewbutton-nav::after {
opacity: 0.5;
}
.widget-overflow-list .toolbarbutton-1:not(.toolbarbutton-combined) > .toolbarbutton-text {
text-align: start;
padding-inline-start: .5em;
}
.subviewbutton > .menu-iconic-left {
appearance: none;
margin-inline-end: 0;
}
#PanelUI-panicView > .panel-subview-body,
#PanelUI-panicView {
overflow: visible;
}
#PanelUI-panicView.cui-widget-panelview {
min-width: 280px;
}
#PanelUI-panic-timeframe {
padding: 15px;
border-bottom: 1px solid var(--panel-separator-color);
}
#panic-button-success-icon,
#PanelUI-panic-timeframe-icon {
background-color: transparent;
margin-inline-end: 10px;
}
#panic-button-success-icon,
#PanelUI-panic-timeframe-icon {
list-style-image: url(chrome://browser/skin/panic-panel/header.png);
max-height: 48px;
width: 48px;
}
#panic-button-success-header {
-moz-box-align: center;
margin-bottom: 5px;
}
#PanelUI-panic-timeframe-icon:-moz-locale-dir(rtl) {
transform: scaleX(-1);
}
.subviewradio {
appearance: none;
-moz-box-align: center;
padding: 1px;
margin: 0 0 2px;
background-color: transparent;
border-radius: 2px;
border: 1px solid transparent;
}
.subviewradio@buttonStateHover@ {
background-color: var(--arrowpanel-dimmed);
border-color: var(--panel-separator-color);
}
.subviewradio[selected],
.subviewradio[selected]:hover,
.subviewradio@buttonStateActive@ {
background-color: var(--arrowpanel-dimmed-further);
border-color: var(--panel-separator-color);
box-shadow: 0 1px 0 hsla(210,4%,10%,.03) inset;
}
.subviewradio > .radio-check {
appearance: none;
width: 16px;
height: 16px;
border: 1px solid #e7e7e7;
border-radius: 50%;
margin: 1px 5px;
background-color: #f1f1f1;
}
.subviewradio > .radio-check[selected] {
background-color: #fff;
border: 4px solid #177ee6;
}
#PanelUI-panic-explanations {
padding: 10px 10px 0;
}
#PanelUI-panic-actionlist-main-label {
color: var(--panel-disabled-color);
font-size: 0.9em;
}
.PanelUI-panic-actionlist {
padding-block: 2px;
padding-inline-start: 20px;
background-size: 16px 16px;
background-repeat: no-repeat;
background-color: transparent;
background-position: left center;
}
.PanelUI-panic-actionlist:-moz-locale-dir(rtl) {
background-position-x: right;
}
#PanelUI-panic-actionlist-cookies {
background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons.png), 0, 16, 16, 0);
}
#PanelUI-panic-actionlist-history {
background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons.png), 0, 32, 16, 16);
}
#PanelUI-panic-actionlist-windows {
background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons.png), 0, 48, 16, 32);
}
#PanelUI-panic-actionlist-newwindow {
background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons.png), 0, 64, 16, 48);
}
#PanelUI-panic-warning {
color: #d74345;
text-align: center;
width: 100%;
margin-top: 20px;
}
#PanelUI-panic-view-button {
appearance: none;
background-color: #d92316;
color: white;
margin: 5px 15px 11px;
border: 1px solid #c92014;
border-radius: 3px;
padding: 10px;
}
#PanelUI-panic-view-button:hover {
background-color: #bf1f13;
border-color: #b81d12;
}
#PanelUI-panic-view-button:hover:active {
background-color: #99180f;
border-color: #91170f;
}
#PanelUI-panic-view-button > .toolbarbutton-text {
text-align: center;
text-shadow: none;
}
#panic-button-success-closebutton {
background-color: #e5e5e5;
color: black;
margin: 5px 0 0;
border: 1px solid #ccc;
border-radius: 3px;
padding: 10px;
appearance: none;
}
#panic-button-success-closebutton:hover {
background-color: #dedede;
border-color: #bbb;
}
#panic-button-success-closebutton:hover:active {
background-color: #d0d0d0;
border-color: #aaa;
}
@media (min-resolution: 1.1dppx) {
.panel-banner-item[notificationid^=update] {
list-style-image: url(chrome://branding/content/icon32.png);
}
#panic-button-success-icon,
#PanelUI-panic-timeframe-icon {
list-style-image: url(chrome://browser/skin/panic-panel/header@2x.png);
}
#PanelUI-panic-actionlist-cookies {
background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons@2x.png), 0, 32, 32, 0);
}
#PanelUI-panic-actionlist-history {
background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons@2x.png), 0, 64, 32, 32);
}
#PanelUI-panic-actionlist-windows {
background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons@2x.png), 0, 96, 32, 64);
}
#PanelUI-panic-actionlist-newwindow {
background-image: -moz-image-rect(url(chrome://browser/skin/panic-panel/icons@2x.png), 0, 128, 32, 96);
}
}
.panel-header {
align-items: center;
border-bottom: 1px solid var(--panel-separator-color);
display: flex;
flex: 1 auto;
padding: 4px;
}
.panel-header > label {
flex: auto;
font-weight: 600;
margin: 4px 0;
text-align: center;
}
.panel-header > label > span {
display: inline-block;
white-space: pre-wrap;
}
.panel-header > .subviewbutton-back + label {
/* Add the size of the back button to center properly. */
margin-inline-end: 32px;
}
.panel-header > .subviewbutton-back {
-moz-context-properties: fill;
fill: var(--arrowpanel-color);
list-style-image: url(chrome://global/skin/icons/arrow-left.svg);
padding: 8px;
}
.subviewbutton-back:-moz-locale-dir(rtl) {
transform: scaleX(-1);
}
.subviewbutton-back > .toolbarbutton-text {
/* !important to override .cui-widget-panel .toolbarbutton-text
* selector further down. */
display: none !important;
}
.subviewbutton.download {
-moz-box-align: start;
min-height: 48px;
padding-inline-start: 8px;
}
.subviewbutton.download > .toolbarbutton-icon,
.subviewbutton.download > .toolbarbutton-text > label {
margin: 4px 0 0;
}
.subviewbutton.download > .toolbarbutton-icon {
width: 32px;
height: 32px;
}
.subviewbutton.download > .toolbarbutton-text > .status-text {
color: var(--panel-disabled-color);
font-size: .9em;
}
.subviewbutton.download > .action-button {
appearance: none; /* To avoid native Windows hover styling */
-moz-context-properties: fill, fill-opacity;
fill: currentColor;
fill-opacity: 1;
%ifdef XP_MACOSX
list-style-image: url("chrome://browser/skin/search-glass.svg");
%else
list-style-image: url("chrome://browser/skin/folder.svg");
%endif
/* Measurement to vertically center this button: 1 line of text minus half of 4px top margin. */
margin: calc(1em - 2px) 0 0;
padding: 4px;
}
.subviewbutton.download[canRetry] > .action-button {
list-style-image: url("chrome://browser/skin/reload.svg");
}
.subviewbutton.download:not([canShow]):not([canRetry]) > .action-button {
fill: currentColor;
fill-opacity: 0.4;
}
.subviewbutton.download:is([canShow],[canRetry]) > .action-button@buttonStateHover@ {
background-color: var(--arrowpanel-dimmed-further);
}
.subviewbutton.download:is([canShow],[canRetry]) > .action-button@buttonStateActive@ {
background-color: var(--arrowpanel-dimmed-even-further);
}
/* What's New panel */
#customizationui-widget-multiview #PanelUI-whatsNew {
max-width: @menuPanelWidth@;
}
#protections-popup-main-header-label {
margin-inline-start: 30px;
text-align: center;
}
#protections-popup #messaging-system-message-container {
height: 260px;
overflow: hidden;
transition: margin-bottom .25s;
border-top: 1px solid var(--panel-separator-color);
}
#protections-popup #messaging-system-message-container[disabled] {
/* Offset the height when hidden. This makes the panel content
* cover the info message and reveal it as it slides down, rather
* than the info message growing in height. */
margin-bottom: -260px;
pointer-events: none;
}
#protections-popup #messaging-system-message-container[disabled] #protections-popup-message {
opacity: 0;
}
#protections-popup-message {
display: flex;
align-items: flex-end;
height: calc(100% - 20px);
margin: 10px;
transition: opacity .25s;
opacity: 1;
background-image: url(chrome://browser/skin/controlcenter/hero-message-background.svg);
background-repeat: no-repeat;
background-position: top right;
color: white;
}
#protections-popup-message:-moz-locale-dir(rtl) {
background-position: top left;
}
#protections-popup-message > .whatsNew-message-body > .text-link {
text-decoration: underline;
}
#protections-popup-message .protections-popup-content {
display: block;
margin: 12px 0;
}
panelview[mainview] #PanelUI-whatsNew-content {
height: 43em;
}
/* Hide the What's New header when the panel is a subview */
panelview:not([mainview]) #PanelUI-whatsNew-title {
display: none;
}
#PanelUI-whatsNew .panel-subview-body {
padding-top: 0;
}
#PanelUI-whatsNew .panelMenu-toggleWhatsNew-checkbox {
background-color: var(--arrowpanel-dimmed);
border-top: 1px solid var(--panel-separator-color);
padding-inline-start: 18px;
min-height: 41px;
}
#PanelUI-whatsNew .panelMenu-toggleWhatsNew-checkbox:hover,
#PanelUI-whatsNew .panelMenu-toggleWhatsNew-checkbox:focus {
background-color: var(--arrowpanel-dimmed-further);
}
#PanelUI-whatsNew .panelMenu-toggleWhatsNew-checkbox:active {
background-color: var(--arrowpanel-dimmed-even-further);
}
/* These checkbox styles have been pulled from `common.inc.css` and
duplicated here to ensure they apply correctly. See
https://searchfox.org/mozilla-central/rev/7908ce29657cfd623993046bd8e38664e1c0b28e/toolkit/themes/shared/in-content/common.inc.css#559 */
#PanelUI-whatsNew checkbox {
appearance: none;
height: 30px;
margin: 0;
}
#PanelUI-whatsNew checkbox[checked] {
list-style-image: url("chrome://global/skin/icons/check.svg");
-moz-context-properties: fill;
fill: #2292d0;
}
#PanelUI-whatsNew .checkbox-check {
appearance: none;
width: 20px;
height: 20px;
padding: 1px;
border: 1px solid #A9A9A9;
border-radius: 2px;
margin: 0;
margin-inline-end: 6px;
background-color: #FFF;
background-position: center;
background-repeat: no-repeat;
}
#PanelUI-whatsNew checkbox:hover .checkbox-check {
border-color: #0a84ff;
}
#PanelUI-whatsNew .checkbox-icon {
display: none;
}
#PanelUI-whatsNew .whatsNew-message {
cursor: pointer;
margin: 0;
padding: 0;
}
/* The following 2 rules show a 1 pixel line separator between What's New
* messages while at the same time ensuring that the first message (which has
* a date header) will not show the separator
*/
#PanelUI-whatsNew .whatsNew-message-body::before {
content: "";
display: block;
height: 1px;
width: 104%;
margin-inline-start: -2%;
background: var(--panel-separator-color);
}
#PanelUI-whatsNew .has-icon::before {
/* the width of the icon + the grid margin */
width: calc(104% + 40px);
}
#PanelUI-whatsNew .whatsNew-message-date + .whatsNew-message-body::before {
display: none;
}
#PanelUI-whatsNew .whatsNew-message-date {
font-size: .85em;
margin: -12px;
margin-top: 0;
margin-inline-start: 0;
padding: 6px 16px;
background: var(--arrowpanel-dimmed);
}
#PanelUI-whatsNew .whatsNew-message-body {
padding: 5px 0 10px;
margin: 0 16px;
text-align: inherit;
text-decoration: none;
color: inherit;
background: none;
border: none;
cursor: pointer;
}
#protections-popup-message .whatsNew-message-body {
/* -10px to compensate for the margin on the container. We can't get rid of that
because it helps position the background image. */
margin: 0 calc(-10px + var(--horizontal-padding)) var(--vertical-section-padding);
}
#PanelUI-whatsNew .whatsNew-message-body.has-icon {
display: grid;
grid-template-columns: auto 32px;
grid-template-rows: 0;
grid-gap: 0 8px;
}
#PanelUI-whatsNew .whatsNew-message-icon {
height: 32px;
width: 32px;
margin: 14px auto;
display: grid;
grid-column-start: 2;
}
#PanelUI-whatsNew .whatsNew-message-title,
#protections-popup-message .whatsNew-message-title {
display: grid;
font-size: 1.3em;
font-weight: 600;
line-height: 1.4em;
margin: 14px 0 0;
grid-column-start: 1;
}
#PanelUI-whatsNew .whatsNew-message-title-large {
font-size: 2.1em;
margin: 2px 0;
font-weight: 300;
grid-column-start: 1;
}
#PanelUI-whatsNew .whatsNew-message-subtitle {
margin: 2px 0;
font-size: .8em;
color: #949494;
font-weight: normal;
grid-column-start: 1;
}
#PanelUI-whatsNew .whatsNew-message-content {
display: grid;
margin: 5px 0 10px;
grid-column-start: 1;
}
#PanelUI-whatsNew .text-link {
background: none;
border: 0;
color: #45a1ff;
cursor: pointer;
font-size: .9em;
grid-column-start: 1;
}
#protections-popup-message .text-link {
color: white;
font-weight: 600;
}
#protections-popup-message .text-link:hover {
text-decoration: underline;
cursor: pointer;
}
#PanelUI-whatsNew .text-link:hover {
color: #0a84ff;
text-decoration: underline;
}
#PanelUI-whatsNew .text-link:focus {
color: #0a84ff;
text-decoration: underline;
}
#PanelUI-whatsNew .text-link:active {
color: #0060df;
}
#PanelUI-profiler {
/* On Linux, the popup was too wide for the content due to this rule. This is marked
as !important to get over the specificity of the CustomizeableUI base rules. */
min-width: 0 !important;
}
#PanelUI-profiler description {
max-width: 290px;
}
/* Make the width nicely sized for when the panel is in the overflow menu area. */
#widget-overflow #PanelUI-profiler description {
max-width: 347px;
}
#widget-overflow #PanelUI-profiler-header-bar {
display: none;
}
#PanelUI-profiler-header[isinfocollapsed="false"] {
background: radial-gradient(circle farthest-side at top right, #03b1f4, #0556cd);
color: #fff;
/* Set custom hover/focus/active states on the info button,
to make them more visible on the header background */
--arrowpanel-dimmed: #0003;
--arrowpanel-dimmed-further: #0005;
--arrowpanel-dimmed-even-further: #0007;
}
#PanelUI-profiler-header-bar {
border-bottom: 1px solid #0003;
}
#PanelUI-profiler-header-bar label {
margin-inline-start: 32px;
padding: 12px;
font-weight: bold;
text-align: center;
}
#PanelUI-profiler-header[isinfocollapsed="true"] #PanelUI-profiler-info {
pointer-events: none;
}
#PanelUI-profiler-header[isinfocollapsed="true"] #PanelUI-profiler-header-bar {
border-bottom: 1px solid var(--panel-separator-color);
}
#PanelUI-profiler-info {
height: 180px;
background: top 10px right no-repeat
url("chrome://browser/skin/profiler-popup-backdrop.png");
opacity: 1;
}
/* The header has an attribute "animationready" that is either set to "true" or to
"false". When the DOM is being initialized it is set to "false" so that animatios
do not run. */
#PanelUI-profiler-header[animationready="true"] #PanelUI-profiler-info {
transition: margin-block-end 250ms, opacity 250ms;
}
#PanelUI-profiler-header[isinfocollapsed="true"] #PanelUI-profiler-info {
opacity: 0;
}
/* Hide the unused box that gets added here. */
#PanelUI-profiler-learn-more > hbox {
display: none;
}
#PanelUI-profiler-content {
position: relative;
}
.PanelUI-profiler-toolbarbutton-container {
-moz-box-pack: center;
margin-inline-end: 4px;
}
#PanelUI-profiler-info label {
font-size: 16px;
font-weight: bold;
margin: 6px 15px;
}
#PanelUI-profiler-info description {
margin: 4px 15px;
}
#PanelUI-profiler-info button {
appearance: none;
padding: 2px;
margin: 4px 13px 13px;
color: #fff;
text-decoration: underline;
cursor: pointer;
}
#PanelUI-profiler-info button:active {
color: #fffc;
}
#PanelUI-profiler-info button:focus {
box-shadow: 0 0 0 2px #fff, 0 0 0 6px rgba(255, 255, 255, 0.3);
border-radius: 2px;
text-decoration: none;
}
#PanelUI-profiler-presets {
appearance: none;
position: relative; /* Ensure there is a stacking context for the dropdown arrow. */
width: 100%;
min-height: 24px;
background-color: #EDEDF0;
color: inherit !important;
border: 1px solid transparent;
border-radius: 2px;
font-weight: 400;
padding-inline: 4px;
text-decoration: none;
font-size: 12px;
margin: 8px 15px;
}
/* This is dark-mode specific styling. */
:root[lwt-popup-brighttext] #PanelUI-profiler-presets {
background-color: rgb(47, 47, 51);
color: #fff;
border: 1px solid #666168;
}
#PanelUI-profiler-presets:hover:not([disabled="true"]) {
border-color: #DDDDE0;
}
#PanelUI-profiler-presets:focus {
box-shadow: 0 0 0 1px #0a84ff, 0 0 0 4px rgba(10, 132, 255, 0.3);
}
#PanelUI-profiler-presets menupopup {
appearance: none;
border: 1px solid #B7B7B7;
border-radius: 2px;
background-color: #FFF;
padding-block: 4px;
}
#PanelUI-profiler-presets menuitem {
appearance: none;
font-size: 1em;
color: #000;
padding-block: 0.2em;
}
#PanelUI-profiler-presets menuitem[_moz-menuactive] {
color: #fff;
background-color: #0060DF;
}
#PanelUI-profiler-presets::after {
width: 12px;
height: 12px;
position: absolute;
display: block;
content: "";
margin-block-start: 5px;
-moz-context-properties: fill;
fill: currentColor;
background: url("chrome://global/skin/icons/arrow-dropdown-12.svg") center center no-repeat;
}
#PanelUI-profiler-presets:-moz-locale-dir(ltr)::after {
right: 22px;
}
#PanelUI-profiler-presets:-moz-locale-dir(rtl)::after {
left: 22px;
}
#PanelUI-profiler-content-custom-button {
appearance: none;
margin: 0;
color: #0046A4;
font-size: 12px;
cursor: pointer;
}
:root[lwt-popup-brighttext] #PanelUI-profiler-content-custom-button {
color: #76B1FF;
}
#PanelUI-profiler-content-custom-button:hover {
text-decoration: underline;
}
#PanelUI-profiler-content-custom-button:active,
#PanelUI-profiler-content-custom-button:focus {
text-decoration: underline;
}
#PanelUI-profiler-content-custom {
margin-inline: 15px;
}
.PanelUI-profiler-content-label {
font-weight: bold;
font-size: 13px;
margin-inline: 15px;
margin-block-start: 10px;
}
#PanelUI-profiler-content-description {
margin: 4px 15px;
font-size: 12px;
opacity: 0.75;
}
#PanelUI-profiler-content-recording {
padding-block: 28px;
padding-inline: 16px;
font-size: 16px;
}
.PanelUI-profiler-recording-icon {
width: 42px;
list-style-image: url(chrome://devtools/skin/images/tool-profiler.svg);
-moz-context-properties: fill;
fill: var(--toolbar-color);
opacity: 0.3;
}
.PanelUI-profiler-recording-label {
margin-block: 9px;
margin-inline: 13px;
}
.PanelUI-profiler-button {
appearance: none;
background-color: #e0e0e1;
border-radius: 2px;
color: #000;
padding: 8px;
margin: 0 5px;
font-size: 13px;
}
.PanelUI-profiler-button:hover {
background-color: #c9c9ca;
}
.PanelUI-profiler-button:active {
background-color: #b1b1b1;
}
.PanelUI-profiler-button:focus {
box-shadow:
0 0 0 1px #0a84ff inset,
0 0 0 1px #0a84ff,
0 0 0 4px rgba(10, 132, 255, 0.3);
}
.PanelUI-profiler-button-primary {
background-color: #0060DF;
/* The !important designation here is to overcome the specificity of the button.css
styles that are being applied on linux for hovers. */
color: #fff !important;
}
.PanelUI-profiler-button-primary:hover {
background-color: #003eaa;
}
.PanelUI-profiler-button-primary:active {
background-color: #002275;
}
.PanelUI-profiler-shortcut {
padding-block-start: 5px;
opacity: 0.5;
text-align: center;
}
.PanelUI-profiler-buttons {
margin: 7px 10px 12px;
}
.PanelUI-profiler-info-icon {
margin-inline-end: 25px;
margin-block-start: 20px;
width: 50px;
list-style-image: url(chrome://devtools/skin/images/tool-profiler.svg);
-moz-context-properties: fill;
fill: #fff;
}
#PanelUI-profiler-presets[disabled="true"]::part(label-box) {
opacity: 0.5;
}
/**
* Override the specificity of `#PanelUI-profiler description`
*/
description#PanelUI-profiler-locked {
padding: 16px;
line-height: 1.5;
/* Make sure this description is wider than the header's */
max-width: 310px;
}