fix: Fixed split tab icons being misaligned, b=bug #10501, p=#10556

This commit is contained in:
mr. m
2025-09-26 13:42:35 +02:00
committed by GitHub
parent 77b1f5d814
commit 61d0d5ced6
5 changed files with 185 additions and 177 deletions

View File

@@ -33,6 +33,7 @@ src/zen/common/styles/zen-theme.css
src/zen/compact-mode/zen-compact-mode.css src/zen/compact-mode/zen-compact-mode.css
src/zen/common/ZenEmojis.mjs src/zen/common/ZenEmojis.mjs
src/zen/split-view/zen-decks.css
src/zen/workspaces/zen-workspaces.css src/zen/workspaces/zen-workspaces.css
*.inc *.inc

View File

@@ -35,7 +35,7 @@
* content/browser/zen-styles/zen-compact-mode.css (../../zen/compact-mode/zen-compact-mode.css) * content/browser/zen-styles/zen-compact-mode.css (../../zen/compact-mode/zen-compact-mode.css)
content/browser/zen-components/ZenViewSplitter.mjs (../../zen/split-view/ZenViewSplitter.mjs) content/browser/zen-components/ZenViewSplitter.mjs (../../zen/split-view/ZenViewSplitter.mjs)
content/browser/zen-styles/zen-decks.css (../../zen/split-view/zen-decks.css) * content/browser/zen-styles/zen-decks.css (../../zen/split-view/zen-decks.css)
content/browser/zen-components/ZenMods.mjs (../../zen/mods/ZenMods.mjs) content/browser/zen-components/ZenMods.mjs (../../zen/mods/ZenMods.mjs)

View File

@@ -4,182 +4,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/ */
tab-group[split-view-group] {
display: block;
@media (prefers-reduced-motion: no-preference) {
transition: var(--zen-tabbox-element-indent-transition);
#tabbrowser-tabs[movingtab] & {
transition: var(--tab-dragover-transition), var(--zen-tabbox-element-indent-transition);
}
}
--zen-split-view-active-tab-bg: color-mix(
in srgb,
var(--zen-toolbar-element-bg),
transparent 40%
);
--tab-collapsed-background-width: none;
:root[zen-sidebar-expanded='true'] & {
margin-inline-start: var(--zen-folder-indent) !important;
}
& .tab-group-label {
height: 100% !important;
}
& .tab-group-container {
display: flex;
flex-wrap: nowrap;
align-items: center;
border-radius: var(--border-radius-medium);
padding: 0 2px;
margin-inline: var(--tab-block-margin);
margin-block: var(--tab-block-margin);
min-height: var(--tab-min-height);
outline: var(--tab-outline);
outline-offset: var(--tab-outline-offset);
outline-color: var(--tab-selected-outline-color);
transition: scale 0.1s ease;
margin-inline: 2px !important;
:root:not([zen-sidebar-expanded='true']) & {
padding: 0;
--tab-collapsed-width: 38px;
overflow: clip;
--tab-min-width: 34px;
outline: 2px solid var(--zen-colors-border-contrast);
outline-offset: -2px;
}
& > .tabbrowser-tab {
--tab-selected-bgcolor: var(--zen-split-view-active-tab-bg);
--tab-hover-background-color: transparent;
--tab-selected-shadow: none;
--border-radius-medium: var(--tab-border-radius);
--zen-active-tab-scale: 1;
--zen-folder-indent: 0 !important;
:root[zen-sidebar-expanded='true'] & {
--tab-min-height: 28px;
}
container-type: inline-size;
container-name: browser-tab;
flex: 1 !important;
padding-inline: 2px !important;
overflow: clip;
&:not(:last-child)::after {
content: '';
width: 1px;
height: 16px;
background-color: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.2));
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
:root:not([zen-sidebar-expanded='true']) &:not(:last-child)::after {
width: 16px;
height: 1px;
top: auto;
bottom: 0;
right: 50%;
transform: translateX(50%);
}
& .tab-content {
min-width: 0;
:root[zen-sidebar-expanded='true'] & {
justify-content: unset !important;
}
}
}
&:has(> tab:is([visuallyselected], [multiselected])) {
background-color: var(--tab-selected-bgcolor);
box-shadow: var(--tab-selected-shadow);
& > .tabbrowser-tab {
--tab-hover-background-color: var(--zen-split-view-active-tab-bg);
& .tab-background {
background-color: var(--zen-split-view-active-tab-bg) !important;
}
&::after {
display: none;
}
}
}
&:active {
scale: var(--zen-active-tab-scale);
}
&:hover {
background-color: var(--zen-toolbar-element-bg);
}
& .tab-close-button,
& .tab-reset-button {
margin-inline-end: -3px !important;
display: none !important;
}
@container browser-tab (min-width: 70px) {
:root[zen-sidebar-expanded='true'] &:hover > .tabbrowser-tab:not([pinned]) .tab-close-button {
display: block !important;
}
}
@media (prefers-reduced-motion: no-preference) {
#tabbrowser-tabs[movingtab] & {
transition: var(--tab-dragover-transition);
}
}
}
}
:root:not([zen-sidebar-expanded='true']) {
tab-group .tab-group-container {
flex-direction: column;
}
tab-group[split-view-group] {
min-width: 100%;
}
}
tab-group[split-view-group] .tabbrowser-tab {
width: 100%;
max-width: unset;
}
tab-group[split-view-group] .tab-group-label-container {
position: absolute;
width: -moz-available;
height: 36px;
visibility: hidden;
padding: 0 !important;
margin: 2px 0 0 0 !important;
}
tab-group[split-view-group] .tab-close-button {
display: block;
visibility: visible;
}
tab-group[split-view-group] .tab-group-line {
display: none;
background: transparent;
}
.tab-group-line { .tab-group-line {
display: none !important; display: none !important;
} }

View File

@@ -6,6 +6,8 @@
/** Zen Decks - ONLY USED FOR SPLIT VIEWS, DO NOT USE THIS CLASS FOR ANY OTHER PURPOSE **/ /** Zen Decks - ONLY USED FOR SPLIT VIEWS, DO NOT USE THIS CLASS FOR ANY OTHER PURPOSE **/
%include zen-split-group.inc.css
#tabbrowser-tabpanels[zen-split-view='true'] { #tabbrowser-tabpanels[zen-split-view='true'] {
display: flex; display: flex;
flex-direction: row; flex-direction: row;

View File

@@ -0,0 +1,181 @@
/*
* 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/.
*/
tab-group[split-view-group] {
display: block;
@media (prefers-reduced-motion: no-preference) {
transition: var(--zen-tabbox-element-indent-transition);
#tabbrowser-tabs[movingtab] & {
transition: var(--tab-dragover-transition), var(--zen-tabbox-element-indent-transition);
}
}
--zen-split-view-active-tab-bg: color-mix(
in srgb,
var(--zen-toolbar-element-bg),
transparent 40%
);
--tab-collapsed-background-width: none;
:root[zen-sidebar-expanded='true'] & {
margin-inline-start: var(--zen-folder-indent) !important;
}
& .tab-group-label {
height: 100% !important;
}
& .tab-group-container {
display: flex;
flex-wrap: nowrap;
align-items: center;
border-radius: var(--border-radius-medium);
padding: 0 2px;
margin-inline: var(--tab-block-margin);
margin-block: var(--tab-block-margin);
min-height: var(--tab-min-height);
outline: var(--tab-outline);
outline-offset: var(--tab-outline-offset);
outline-color: var(--tab-selected-outline-color);
transition: scale 0.1s ease;
margin-inline: 2px !important;
:root:not([zen-sidebar-expanded='true']) & {
padding: 0;
--tab-collapsed-width: 38px;
overflow: clip;
--tab-min-width: 34px;
outline: 2px solid var(--zen-colors-border-contrast);
outline-offset: -2px;
}
& > .tabbrowser-tab {
--tab-selected-bgcolor: var(--zen-split-view-active-tab-bg);
--tab-hover-background-color: transparent;
--tab-selected-shadow: none;
--border-radius-medium: var(--tab-border-radius);
--zen-active-tab-scale: 1;
--zen-folder-indent: 0 !important;
:root[zen-sidebar-expanded='true'] & {
--tab-min-height: 28px;
}
container-type: inline-size;
container-name: browser-tab;
flex: 1 !important;
padding-inline: 2px !important;
overflow: clip;
&:not(:last-child)::after {
content: '';
width: 1px;
height: 16px;
background-color: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.2));
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
:root:not([zen-sidebar-expanded='true']) &:not(:last-child)::after {
width: 16px;
height: 1px;
top: auto;
bottom: 0;
right: 50%;
transform: translateX(50%);
}
& .tab-content {
min-width: 0;
padding: 0 4px !important;
:root[zen-sidebar-expanded='true'] & {
justify-content: unset !important;
}
}
}
&:has(> tab:is([visuallyselected], [multiselected])) {
background-color: var(--tab-selected-bgcolor);
box-shadow: var(--tab-selected-shadow);
& > .tabbrowser-tab {
--tab-hover-background-color: var(--zen-split-view-active-tab-bg);
& .tab-background {
background-color: var(--zen-split-view-active-tab-bg) !important;
}
&::after {
display: none;
}
}
}
&:active {
scale: var(--zen-active-tab-scale);
}
&:hover {
background-color: var(--zen-toolbar-element-bg);
}
& .tab-close-button,
& .tab-reset-button {
display: none !important;
}
@container browser-tab (min-width: 70px) {
:root[zen-sidebar-expanded='true'] &:hover > .tabbrowser-tab:not([pinned]) .tab-close-button {
display: block !important;
}
}
@media (prefers-reduced-motion: no-preference) {
#tabbrowser-tabs[movingtab] & {
transition: var(--tab-dragover-transition);
}
}
}
}
:root:not([zen-sidebar-expanded='true']) {
tab-group .tab-group-container {
flex-direction: column;
}
tab-group[split-view-group] {
min-width: 100%;
}
}
tab-group[split-view-group] .tabbrowser-tab {
width: 100%;
max-width: unset;
}
tab-group[split-view-group] .tab-group-label-container {
position: absolute;
width: -moz-available;
height: 36px;
visibility: hidden;
padding: 0 !important;
margin: 2px 0 0 0 !important;
}
tab-group[split-view-group] .tab-close-button {
display: block;
visibility: visible;
}
tab-group[split-view-group] .tab-group-line {
display: none;
background: transparent;
}