1
0
Fork 0
firefox/browser/themes/shared/sidebar.css
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

374 lines
10 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/. */
#sidebar-box {
max-width: 75vw;
min-width: 14em;
width: 18em;
:root[lwt-sidebar="light"] & {
color-scheme: light;
}
:root[lwt-sidebar="dark"] & {
color-scheme: dark;
}
/* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("sidebar.revamp") {
min-width: 200px;
width: 340px;
padding-block-end: var(--space-small);
padding-inline-end: var(--space-small);
position: relative;
z-index: var(--browser-area-z-index-sidebar);
&[sidebar-positionend] {
padding-inline: 0;
margin-inline-start: var(--space-small);
}
}
&[sidebarcommand="viewGenaiChatSidebar"] {
min-width: 400px;
}
&[sidebarcommand="viewCPMSidebar"] {
min-width: 260px;
}
}
#sidebar-main,
#sidebar-box {
text-shadow: none;
max-width: 75vw;
/* stylelint-disable-next-line media-query-no-invalid */
@media not -moz-pref("sidebar.revamp") {
background-color: var(--sidebar-background-color);
color: var(--sidebar-text-color);
/* Note that with sidebar.revamp we apply the --sidebar-background-color to the
* #sidebar browser. We still need the #sidebar-box background to match the
* toolbar tho - this background is set on the #browser ancestor rather than here */
}
}
.sidebar-browser-stack > .dialogStack > .dialogTemplate > .dialogBox {
/* Not enough horizontal space, remove the margin */
margin-inline: 0;
}
#sidebar-header {
font-size: 1.333em;
padding: 8px;
border-bottom: 1px solid var(--sidebar-border-color);
}
#sidebar-spacer {
/* To ensure the button doesn't expand unnecessarily for short labels, the
spacer should significantly out-flex the button. */
flex: 1000 1000;
}
#sidebar {
flex: 1;
/* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("sidebar.revamp") {
border-radius: var(--border-radius-medium);
box-shadow: var(--content-area-shadow);
outline: 0.5px solid var(--sidebar-border-color);
background-color: var(--sidebar-background-color);
color: var(--sidebar-text-color);
}
}
.sidebar-splitter {
--splitter-width: 4px;
/* Ensure the splitter is painted on top of the sidebar box it overlaps.
Otherwise, the user may be unable to drag the splitter to resize the sidebar. */
z-index: var(--browser-area-z-index-sidebar-splitter);
/* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("sidebar.revamp") or (not (-moz-platform: linux)) {
/* We don't let the splitter overlap the sidebar on Linux since the sidebar's
scrollbar is too narrow on Linux. */
appearance: none;
border: 0 solid;
border-inline-end-width: 1px;
border-color: var(--sidebar-border-color);
min-width: 1px;
width: var(--splitter-width);
background-image: none !important;
background-color: transparent;
margin-inline-start: calc(-1 * var(--splitter-width));
position: relative;
#sidebar-box[sidebar-positionend] + & {
border-inline-width: 1px 0;
margin-inline: 0 calc(-1 * var(--splitter-width));
}
}
/* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("sidebar.revamp") {
--splitter-width: 4px;
transition: background-color 0.5s ease-in-out;
border-style: none;
&:hover {
background-color: var(--focus-outline-color);
}
@media (-moz-overlay-scrollbars) {
--splitter-width: 2px;
}
/* stylelint-disable-next-line media-query-no-invalid */
@media not -moz-pref("sidebar.verticalTabs") {
&#sidebar-launcher-splitter {
display: none;
}
}
}
}
#sidebar-throbber[loading="true"] {
list-style-image: url("chrome://global/skin/icons/loading.svg");
-moz-context-properties: fill;
fill: currentColor;
}
#sidebar-title {
margin: 0;
padding: 0;
padding-inline: 8px 4px;
flex: 1;
}
#sidebar-switcher-arrow {
-moz-context-properties: fill;
fill: currentColor;
opacity: 0.8;
}
#sidebar-switcher-arrow {
list-style-image: url(chrome://global/skin/icons/arrow-down-12.svg);
width: 12px;
height: 12px;
}
#sidebar-switcher-target {
appearance: none;
color: inherit;
margin-inline-end: 4px;
border-radius: var(--toolbarbutton-border-radius);
border: 1px solid transparent;
padding: 2px 4px;
flex: 1;
}
#sidebar-switcher-target:hover {
background-color: var(--toolbarbutton-hover-background);
}
#sidebar-switcher-target:hover:active,
#sidebar-switcher-target.active {
background-color: var(--toolbarbutton-active-background);
}
#sidebar-switcher-target:focus-visible,
#sidebar-close:focus-visible {
outline: var(--focus-outline);
outline-offset: 0;
}
#sidebarMenu-popup > menuitem {
min-width: 16em;
}
menuseparator + #sidebar-extensions-separator {
display: none;
}
#sidebar-box[sidebarcommand="viewBookmarksSidebar"] > #sidebar-header > #sidebar-switcher-target > #sidebar-icon {
list-style-image: url(chrome://browser/skin/bookmark.svg);
-moz-context-properties: fill;
fill: currentColor;
opacity: 0.8;
}
#sidebar-box[sidebarcommand="viewHistorySidebar"] > #sidebar-header > #sidebar-switcher-target > #sidebar-icon {
list-style-image: url(chrome://browser/skin/history.svg);
-moz-context-properties: fill;
fill: currentColor;
opacity: 0.8;
}
#sidebar-box[sidebarcommand="viewTabsSidebar"] > #sidebar-header > #sidebar-switcher-target > #sidebar-icon {
list-style-image: url(chrome://browser/skin/synced-tabs.svg);
-moz-context-properties: fill;
fill: currentColor;
opacity: 0.8;
}
/* WebExtension Sidebars */
#sidebar-box[sidebarcommand$="-sidebar-action"] > #sidebar-header > #sidebar-switcher-target > #sidebar-icon {
list-style-image: var(--webextension-menuitem-image, inherit);
-moz-context-properties: fill;
fill: currentColor;
width: 16px;
height: 16px;
}
.webextension-menuitem {
list-style-image: var(--webextension-menuitem-image, inherit) !important;
}
/* Sidebar animation */
#sidebar-main,
sidebar-main,
#sidebar-box,
#sidebar-splitter,
#tabbrowser-tabbox {
transform-origin: 0 0;
will-change: translate;
}
#sidebar-main {
/* Prevent overflow during sidebar animation when the sidebar is reordered */
overflow: clip;
}
/* Expand on hover */
:root[sidebar-expand-on-hover] {
#sidebar-main {
border-radius: inherit;
background-color: inherit;
position: relative;
inset: 0;
inset-inline-end: unset;
/* We only want to apply these styles in two scenarios:
* When the sidebar is expanded AND hovered
* When the sidebar is in the process of moving from expanded to collapsed
*/
&[sidebar-launcher-expanded],
&[sidebar-ongoing-animations]:not([sidebar-launcher-expanded]) {
z-index: var(--browser-area-z-index-sidebar-expand-on-hover);
position: absolute;
color: var(--toolbox-textcolor);
background-color: var(--toolbox-bgcolor);
&:not([sidebar-positionend]) {
border-inline-end: 0.01px solid var(--sidebar-border-color);
}
&[sidebar-positionend] {
border-inline-start: 0.01px solid var(--sidebar-border-color);
}
}
:root[lwtheme] & {
border-radius: unset;
border-inline: unset;
color: var(--toolbox-textcolor);
background-color: var(--toolbox-bgcolor);
&:-moz-window-inactive {
color: var(--toolbox-textcolor-inactive);
background-color: var(--toolbox-bgcolor-inactive);
}
}
&[sidebar-positionend] {
inset-inline-start: unset;
inset-inline-end: 0;
}
}
#sidebar-launcher-splitter[sidebar-launcher-expanded] {
display: none;
}
/* We add margin to compensate for the launcher width to the element next to it.
The element next to it can be the sidebar box or the tabbox,
depending on whether the sidebar box is expanded */
#tabbrowser-tabbox {
&:not([sidebar-positionend]) {
&:not([sidebar-panel-open]) {
margin-inline-start: 0;
}
&[sidebar-launcher-expanded][sidebar-launcher-hovered]:not([sidebar-panel-open]),
&[sidebar-ongoing-animations]:not([sidebar-launcher-expanded], [sidebar-panel-open]) {
margin-inline-start: var(--sidebar-launcher-collapsed-width);
}
}
&[sidebar-positionend] {
&:not([sidebar-panel-open]) {
margin-inline-end: 0;
}
&[sidebar-launcher-expanded][sidebar-launcher-hovered]:not([sidebar-panel-open]),
&[sidebar-ongoing-animations]:not([sidebar-panel-open], [sidebar-launcher-expanded]) {
margin-inline-end: var(--sidebar-launcher-collapsed-width);
}
}
}
#sidebar-box {
&:not([sidebar-positionend]) {
&[sidebar-panel-open] {
margin-inline-start: 0;
}
&[sidebar-panel-open][sidebar-launcher-hovered][sidebar-launcher-expanded],
&[sidebar-ongoing-animations][sidebar-panel-open] {
margin-inline-start: var(--sidebar-launcher-collapsed-width);
}
}
&[sidebar-positionend] {
&[sidebar-panel-open] {
margin-inline-end: 0;
}
&[sidebar-panel-open][sidebar-launcher-hovered][sidebar-launcher-expanded],
&[sidebar-ongoing-animations][sidebar-panel-open] {
margin-inline-end: var(--sidebar-launcher-collapsed-width);
}
}
}
}
/* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("sidebar.visibility", "expand-on-hover") {
/* We need these rules to apply at all times when the sidebar.visibility
pref is set to "expand-on-hover" as opposed to when the "sidebar-expand-on-hover" attribute
has been added to root. There are certain scenarios when that attribute is temporarily
removed from root such as when toggling the sidebar to expand with the toolbar button. */
#sidebar-box {
--sidebar-border-color: light-dark(rgb(207, 207, 216), rgb(82, 82, 94));
> #sidebar {
box-shadow: none;
margin-block-start: 1px;
border: 0.5px solid var(--sidebar-border-color);
}
}
}
/* History Menu */
#sidebar-history-sort-by-heading {
margin-block: var(--space-xsmall);
}
#sidebar-history-clear {
padding: var(--menuitem-padding);
&::before {
content: unset;
}
}