201 lines
5.9 KiB
CSS
201 lines
5.9 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 https://mozilla.org/MPL/2.0/. */
|
|
|
|
@media -moz-pref("sidebar.verticalTabs") {
|
|
:host {
|
|
--button-size-icon: var(--tab-min-height);
|
|
--button-min-height: var(--button-size-icon);
|
|
}
|
|
}
|
|
|
|
[hidden] {
|
|
display: none !important;
|
|
}
|
|
|
|
:host {
|
|
width: 100%;
|
|
}
|
|
|
|
.wrapper {
|
|
display: grid;
|
|
grid-template-rows: auto min-content min-content;
|
|
box-sizing: border-box;
|
|
height: 100%;
|
|
max-width: 100%;
|
|
padding-inline: 0;
|
|
|
|
@media -moz-pref("sidebar.verticalTabs") {
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
:host([expanded]) & {
|
|
/* TODO: Should this be some other pixel value between 5/6? Need to be careful of Linux where font size is larger */
|
|
--tab-pinned-horizontal-count: 5;
|
|
/* TODO: These --space-* tokens should use semantic names shared with tabs.css */
|
|
width: var(
|
|
--sidebar-expanded-launcher-width,
|
|
calc(var(--tab-pinned-horizontal-count) * var(--tab-pinned-min-width-expanded) + 2 * var(--tab-pinned-container-margin-inline-expanded) + 1px)
|
|
);
|
|
}
|
|
|
|
:host([customWidth]) & {
|
|
width: 100%;
|
|
}
|
|
}
|
|
}
|
|
|
|
#sidebar-tools-and-extensions-splitter {
|
|
display: block;
|
|
border-top: var(--tabstrip-inner-border);
|
|
margin-inline: var(--tab-inner-inline-margin);
|
|
margin-block-end: var(--space-small);
|
|
min-height: 2px;
|
|
@media -moz-pref("browser.nova.enabled") {
|
|
min-height: 4px;
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var(--focus-outline-color);
|
|
border-radius: var(--border-radius-medium);
|
|
}
|
|
|
|
@media not -moz-pref("sidebar.visibility", "expand-on-hover") {
|
|
/* We need these rules to apply at all times when the sidebar.visibility
|
|
pref is not set to "expand-on-hover" as opposed to when the "sidebar-expand-on-hover" attribute
|
|
has not 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. */
|
|
:host([expanded]) & {
|
|
border-color: transparent;
|
|
}
|
|
}
|
|
}
|
|
|
|
.actions-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: start;
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
|
|
> moz-button {
|
|
--button-icon-fill: var(--toolbarbutton-icon-fill);
|
|
--button-attention-dot-color: light-dark(#53b93a, #73d25d);
|
|
}
|
|
|
|
> moz-button:not(.tools-overflow) {
|
|
/* --sidebar-launcher-button-padding-inline is set in the parent doc
|
|
* (browser/themes/shared/sidebar.css) so it can react to the document's
|
|
* uidensity attribute; falls back to --space-medium for any context
|
|
* that doesn't set it. The auto-compact width check uses a fixed
|
|
* reference width matching the non-compact value, so the launcher must
|
|
* visibly shrink in compact mode to keep the trigger stable. */
|
|
--button-outer-padding-inline: var(--sidebar-launcher-button-padding-inline, var(--space-medium));
|
|
--button-outer-padding-block: var(--space-xxsmall);
|
|
|
|
&:first-of-type {
|
|
--button-outer-padding-block-start: var(--space-small);
|
|
|
|
@media -moz-pref("browser.nova.enabled") and (not -moz-pref("sidebar.verticalTabs")) {
|
|
--button-outer-padding-block-start: 4px;
|
|
}
|
|
}
|
|
|
|
&:last-of-type {
|
|
--button-outer-padding-block-end: var(--space-small);
|
|
|
|
@media -moz-pref("browser.nova.enabled") and (not -moz-pref("sidebar.verticalTabs")) {
|
|
--button-outer-padding-block-end: 4px;
|
|
}
|
|
}
|
|
}
|
|
|
|
moz-button:not([type~="ghost"]):not(:hover) {
|
|
&::part(button) {
|
|
background-color: var(--toolbarbutton-background-color-active);
|
|
}
|
|
}
|
|
|
|
&.overflow-button {
|
|
flex-shrink: 0;
|
|
}
|
|
}
|
|
|
|
:host([sidebar-positionend]) .more-tools-button::part(button) {
|
|
transform: scaleX(-1);
|
|
}
|
|
|
|
.tools-and-extensions[orientation="horizontal"] {
|
|
:host([expanded]) & {
|
|
display: flex;
|
|
flex-wrap: wrap-reverse;
|
|
flex-direction: row;
|
|
justify-content: flex-start;
|
|
align-content: flex-start;
|
|
gap: var(--space-xxsmall);
|
|
padding-inline: var(--space-medium);
|
|
padding-block-end: var(--space-small);
|
|
|
|
@media -moz-pref("browser.nova.enabled") {
|
|
gap: 12.5px;
|
|
}
|
|
|
|
@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 not 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. */
|
|
margin-block-start: var(--space-small);
|
|
}
|
|
|
|
.tools-overflow {
|
|
width: unset;
|
|
}
|
|
|
|
&[overflowing="true"] {
|
|
padding-inline-end: 0;
|
|
flex-wrap: nowrap;
|
|
}
|
|
}
|
|
}
|
|
|
|
.buttons-wrapper {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex-shrink: 0;
|
|
justify-content: space-between;
|
|
min-height: calc(var(--button-min-height) + (var(--space-small) * 2));
|
|
overflow: hidden;
|
|
|
|
:host([expanded]) & {
|
|
flex-direction: row;
|
|
align-items: flex-end;
|
|
}
|
|
|
|
@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 not 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. */
|
|
:host(:not([expanded])) & {
|
|
grid-template-rows: 1fr;
|
|
padding-block-end: var(--space-small);
|
|
}
|
|
}
|
|
}
|
|
|
|
.bottom-actions > moz-button:last-of-type {
|
|
--button-outer-padding-block-end: var(--space-medium);
|
|
}
|
|
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
moz-button::part(moz-button-label) {
|
|
opacity: 0;
|
|
transition: opacity 300ms ease-in-out;
|
|
}
|
|
}
|
|
|
|
.bottom-actions {
|
|
align-self: end;
|
|
}
|