browser/themes/shared/smartwindowGroupTabs.css
Propagation: 34.43%
Back to Home/* 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/. */
/* Smart Window "Group my tabs" panels. These are chrome-side XUL <panel>s
* (built in AutoTabGrouping.sys.mjs) that host HTML content styled through the
* swgt- ("smart window group tabs") class namespace.
*
* The colors below are placeholder light-theme values; they will be replaced
* with design tokens and light-dark() support alongside the Fluent/theming
* follow-up. */
/* stylelint-disable stylelint-plugin-mozilla/use-design-tokens -- placeholder light-theme colors, tokenized in a follow-up */
#smartwindow-group-tabs-panel,
#smartwindow-group-tabs-flyout {
--panel-padding: 0;
--panel-background-color: transparent;
--panel-border-color: transparent;
--panel-box-shadow: none;
--panel-border-radius: var(--border-radius-large);
-moz-theme: non-native;
-moz-window-shadow: none;
background-color: transparent;
}
.swgt-card,
.swgt-flyout {
--swgt-text: #1c1b22;
--swgt-text-dim: #5b5b66;
--swgt-card-bg: #ffffff;
--swgt-divider: rgba(0, 0, 0, 0.09);
--swgt-hover: rgba(120, 90, 220, 0.08);
background: var(--swgt-card-bg);
color: var(--swgt-text);
border: var(--border-width) solid var(--swgt-divider);
border-radius: var(--border-radius-large);
box-shadow: 0 10px 34px rgba(0, 0, 0, 0.22);
overflow: hidden;
display: flex;
flex-direction: column;
font: menu;
}
.swgt-card {
width: 340px;
padding: var(--space-small);
}
.swgt-flyout {
width: 300px;
}
.swgt-header {
margin-block: 0;
margin-inline: calc(-1 * var(--space-small));
padding-block: 18px;
padding-inline: 20px;
font-size: 1.25em;
font-weight: 700;
text-align: center;
border-block-end: var(--border-width) solid var(--swgt-divider);
}
.swgt-section {
padding-block: var(--space-medium) var(--space-xsmall);
padding-inline: 20px;
font-size: 0.82em;
color: var(--swgt-text-dim);
}
.swgt-row {
appearance: none;
border: none;
background: transparent;
color: inherit;
text-align: start;
box-sizing: border-box;
width: 100%;
padding-block: var(--space-medium);
--swgt-row-padding-inline: 20px;
padding-inline: var(--swgt-row-padding-inline);
cursor: pointer;
display: flex;
align-items: center;
gap: var(--space-medium);
font: inherit;
border-radius: calc(var(--border-radius-medium) * 1.5);
}
@media (prefers-reduced-motion: no-preference) {
.swgt-row {
transition: padding-inline 150ms var(--animation-easing-function);
}
}
.swgt-row:hover,
.swgt-row.is-active {
background: var(--swgt-hover);
}
.swgt-row:not(.swgt-create-all):not(.swgt-undo-last):hover,
.swgt-row:not(.swgt-create-all):not(.swgt-undo-last).is-active {
padding-inline: calc(var(--swgt-row-padding-inline) + var(--space-small));
}
/* The card takes programmatic focus when the panel opens (to move screen-reader
* focus into the dialog); it is not a keyboard stop, so it shows no ring. The
* controls inside it do. */
.swgt-card:focus-visible {
outline: none;
}
.swgt-row:focus-visible,
.swgt-flyout-header:focus-visible {
outline: var(--focus-outline);
outline-offset: var(--focus-outline-inset);
}
.swgt-create-all {
font-size: 1.1em;
padding-block: var(--space-large);
padding-inline: calc(var(--swgt-row-padding-inline) + var(--space-small));
margin-inline: calc(-1 * var(--space-small));
width: auto;
border-radius: 0;
border-block-end: var(--border-width) solid var(--swgt-divider);
}
.swgt-row-label {
flex: 1;
min-width: 0;
font-size: 1.05em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.swgt-chevron {
color: var(--swgt-text-dim);
opacity: 0.7;
flex: none;
}
.swgt-tiles {
display: flex;
flex: none;
}
.swgt-tile {
width: var(--size-item-small);
height: var(--size-item-small);
border-radius: var(--border-radius-small);
color: #fff;
font-size: 10px;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
text-transform: uppercase;
}
/* Overlap the row's preview tiles, leftmost on top. */
.swgt-tiles > .swgt-tile {
position: relative;
}
.swgt-tiles > .swgt-tile:not(:first-child) {
margin-inline-start: -5px;
}
.swgt-tiles > .swgt-tile:nth-child(1) {
z-index: 2;
}
.swgt-tiles > .swgt-tile:nth-child(2) {
z-index: 1;
}
.swgt-dot {
width: 11px;
height: 11px;
border-radius: var(--border-radius-circle);
flex: none;
}
.swgt-message {
padding-block: 26px;
padding-inline: 20px;
color: var(--swgt-text-dim);
text-align: center;
}
.swgt-flyout-header {
appearance: none;
border: none;
background: transparent;
color: inherit;
font: inherit;
width: 100%;
text-align: start;
padding-block: var(--space-large) var(--space-medium);
padding-inline: 18px;
cursor: pointer;
display: flex;
flex-direction: column;
gap: var(--space-xxsmall);
border-block-end: var(--border-width) solid var(--swgt-divider);
}
.swgt-flyout-header:hover {
background: var(--swgt-hover);
}
.swgt-flyout-title {
display: flex;
align-items: center;
gap: var(--space-small);
font-size: 1.1em;
font-weight: 700;
}
.swgt-flyout-subtitle {
color: var(--swgt-text-dim);
font-size: 0.9em;
padding-inline-start: 19px;
}
.swgt-flyout-list {
padding-block: 6px;
padding-inline: 0;
}
.swgt-flyout-tab {
display: flex;
align-items: center;
gap: var(--space-medium);
padding-block: var(--space-small);
padding-inline: 18px;
}
.swgt-flyout-tab-label {
flex: 1;
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
Back to Home