diff --git a/README.md b/README.md index 3d5ec2e4..78f426d6 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,10 @@ [Download Firefox](https://www.mozilla.org/en-US/firefox/all/#product-desktop-release) / [Download WaveFox](https://github.com/QNetITQ/WaveFox/releases) / [WaveFox Nightly](https://github.com/QNetITQ/WaveFox/tree/WaveFox-Nightly)
- WaveFox Nova v0.7.156 + WaveFox Nova v0.8.157 - ##### Minimum Requirements - - Firefox 156 + - Firefox 157 - Windows / MacOS / Linux - Download the `chrome` folder and put it in your user profile folder @@ -46,13 +46,18 @@ Requires OS with transparency support. Works only with the system theme. Ability to control the rounding of browser bar elements. изображение -- `WaveFox.Toolbar.Roundings` > 1 or 2 or 3 or 4 +- `WaveFox.Toolbar.Roundings` > 1 or 2 or 3 or 4 or 5 ### Tab Separators ![изображение](https://user-images.githubusercontent.com/85301851/152351312-f6ad4578-e7d5-40b7-8b2d-49388a750f54.png) - `WaveFox.HorizontalTabs.Tabs.Separators` > 1 or 2 +### Tab Bar Shadows +![изображение](https://user-images.githubusercontent.com/85301851/152011749-4d5619b3-0fd8-40f9-a3dc-96be31839971.png) + +- `WaveFox.HorizontalTabs.Tabs.Shadows` + ### Icons (firefox-csshacks / Lepton) / (Horizontal and Vertical tabs) This is third-party code. I will update this code according to the original source. diff --git a/chrome/modules/general_styles/wavefox_toolbar.css b/chrome/modules/general_styles/wavefox_toolbar.css index 4553db36..55096fa4 100644 --- a/chrome/modules/general_styles/wavefox_toolbar.css +++ b/chrome/modules/general_styles/wavefox_toolbar.css @@ -1,6 +1,19 @@ /* Roundings */ @media -moz-pref("WaveFox.Toolbar.Roundings", 1) +{ + :root + { + --border-radius-xsmall: 0px !important; + --border-radius-small: 0px !important; + --border-radius-medium: 0px !important; + --border-radius-large: 0px !important; + --border-radius-xlarge: 0px !important; + --border-radius-circle: 0px !important; + } +} + +@media -moz-pref("WaveFox.Toolbar.Roundings", 2) { :root { @@ -13,7 +26,7 @@ } } -@media -moz-pref("WaveFox.Toolbar.Roundings", 2) +@media -moz-pref("WaveFox.Toolbar.Roundings", 3) { :root { @@ -26,7 +39,7 @@ } } -@media -moz-pref("WaveFox.Toolbar.Roundings", 3) +@media -moz-pref("WaveFox.Toolbar.Roundings", 4) { :root { @@ -39,7 +52,7 @@ } } -@media -moz-pref("WaveFox.Toolbar.Roundings", 4) +@media -moz-pref("WaveFox.Toolbar.Roundings", 5) { :root { diff --git a/chrome/modules/horizontal_tabs/wavefox_main_window_and_subobjects.css b/chrome/modules/horizontal_tabs/wavefox_main_window_and_subobjects.css index 31cda2df..e99090d4 100644 --- a/chrome/modules/horizontal_tabs/wavefox_main_window_and_subobjects.css +++ b/chrome/modules/horizontal_tabs/wavefox_main_window_and_subobjects.css @@ -1,19 +1,11 @@ -#navigator-toolbox -{ - & > * - { - border: none !important; - } -} - /* OS System Theme */ @media -moz-pref("WaveFox.HorizontalTabs.OS.SystemTheme") and - -moz-pref("extensions.activeThemeID", 'default-theme@mozilla.org') + -moz-pref("extensions.activeThemeID", 'default-theme@mozilla.org') and + (-moz-native-theme) { #main-window, - body, - #navigator-toolbox + body { background-color: transparent !important; background-image: none !important; diff --git a/chrome/modules/horizontal_tabs/wavefox_tab_media_icons_and_text.css b/chrome/modules/horizontal_tabs/wavefox_tab_media_icons_and_text.css index a1146e7f..9b4ab5cf 100644 --- a/chrome/modules/horizontal_tabs/wavefox_tab_media_icons_and_text.css +++ b/chrome/modules/horizontal_tabs/wavefox_tab_media_icons_and_text.css @@ -1,104 +1,63 @@ /* -------------------- Media Icons -------------------- */ -@scope (#pinned-tabs-container, #tabbrowser-arrowscrollbox) to (tab-group, tab-split-view-wrapper) +tab-split-view-wrapper { - /* Pinned Tabs */ - - .tabbrowser-tab[pinned]:not([crashed]) - { - &:where([soundplaying], [muted], [activemedia-blocked]) .tab-icon-stack > :not(.tab-icon-overlay) - { - clip-path: shape( - nonzero from 0px 0px, - hline by 16px, - vline by 16px, - arc by -16px 0px of 8px ccw, - close - ); - } + min-width: calc(var(--tab-min-width-pref, var(--tab-min-width)) * 2 + 6px) !important; +} - .tab-icon-overlay - { - background-color: transparent !important; - background-image: none !important; - color: inherit !important; - fill: currentColor !important; - top: 8px !important; - inset-inline-end: 0px !important; - box-shadow: none !important; +.tabbrowser-tab +{ + --tab-min-width-extra-icons: 0px !important; + --tab-icon-end-margin: 6px !important; +} - &:hover - { - background-color: color-mix(in srgb, currentColor 17%, transparent) !important; - } +/* Pinned Tabs */ - &:hover:active - { - background-color: color-mix(in srgb, currentColor 30%, transparent) !important; - } - } +.tabbrowser-tab[pinned]:not([crashed]) +{ + &:where([soundplaying], [muted], [activemedia-blocked]) .tab-icon-stack > :not(.tab-icon-overlay) + { + clip-path: shape( + nonzero from 0px 0px, + hline by 16px, + vline by 16px, + arc by -16px 0px of 8px ccw, + close + ); } - /* Regular Tabs */ - - .tabbrowser-tab:not([pinned], [crashed]) + .tab-icon-overlay { - &:where([soundplaying], [muted], [activemedia-blocked]) .tab-icon-stack > * - { - clip-path: shape( - nonzero from 0px 0px, - hline by 16px, - vline by 16px, - arc by -16px 0px of 8px ccw, - close - ); - } - - .tab-audio-button + background-color: transparent !important; + background-image: none !important; + color: inherit !important; + fill: currentColor !important; + top: 8px !important; + inset-inline-end: 0px !important; + box-shadow: none !important; + border: none !important; + border-radius: 50px !important; + + &:hover { - --button-size-icon-small: 16px !important; - --button-min-height-small: 16px !important; - --button-background-color-ghost: transparent !important; - --button-text-color-ghost: inherit !important; - --button-background-color-ghost-hover: color-mix(in srgb, currentColor 17%, transparent) !important; - --button-text-color-ghost-hover: inherit !important; - --button-background-color-ghost-active: color-mix(in srgb, currentColor 30%, transparent) !important; - --button-text-color-ghost-active: inherit !important; - margin: 0px !important; - position: relative !important; - top: 8px !important; + background-color: color-mix(in srgb, currentColor 17%, transparent) !important; } - - .tab-content - { - display: grid !important; - grid-template-rows: auto !important; - grid-template-columns: auto 1fr auto !important; - .tab-icon-stack, - .tab-audio-button - { - grid-area: 1 / 1 / auto / auto !important; - } - - .tab-icon-image:not([src], [pinned], [crashed], [sharing], [pictureinpicture], [busy]) - { - display: block !important; - } + &:hover:active + { + background-color: color-mix(in srgb, currentColor 30%, transparent) !important; } } +} - .tabbrowser-tab:not([pinned]) - { - &[fadein] - { - min-width: var(--tab-min-width-pref, var(--tab-min-width)) !important; - } +/* Regular Tabs */ - .tab-icon-stack > * - { - margin-inline-end: 6px !important; - } +.tabbrowser-tab +{ + .tab-audio-button + { + --button-size-icon-small: 16px !important; + --button-min-height-small: 16px !important; } } diff --git a/chrome/modules/horizontal_tabs/wavefox_tab_separators.css b/chrome/modules/horizontal_tabs/wavefox_tab_separators.css index 56e7b5ce..bc6a92bd 100644 --- a/chrome/modules/horizontal_tabs/wavefox_tab_separators.css +++ b/chrome/modules/horizontal_tabs/wavefox_tab_separators.css @@ -81,9 +81,9 @@ @media -moz-pref("WaveFox.HorizontalTabs.Tabs.Separators", 2) { - .tabbrowser-tab > .tab-stack > .tab-background + .tabbrowser-tab:not([visuallyselected], :hover, [multiselected]) > .tab-stack > .tab-background { - background-color: color-mix(in srgb, currentColor 17%, transparent); + background-color: color-mix(in srgb, currentColor 10%, transparent) !important; } } } diff --git a/chrome/modules/horizontal_tabs/wavefox_tab_shadows.css b/chrome/modules/horizontal_tabs/wavefox_tab_shadows.css index 3a1f51a2..27127161 100644 --- a/chrome/modules/horizontal_tabs/wavefox_tab_shadows.css +++ b/chrome/modules/horizontal_tabs/wavefox_tab_shadows.css @@ -1,64 +1,62 @@ -/* -@media -moz-pref("extensions.activeThemeID", 'default-theme@mozilla.org') or - -moz-pref("extensions.activeThemeID", 'firefox-compact-light@mozilla.org') or - -moz-pref("extensions.activeThemeID", 'firefox-compact-dark@mozilla.org') +@media -moz-pref("WaveFox.HorizontalTabs.Tabs.Shadows") { - @media not -moz-pref("WaveFox.HorizontalTabs.AttachedTabs") + @scope (:root) to (tab-split-view-wrapper) { - @scope (:root) to (tab-split-view-wrapper) + :scope { - :scope - { - --wavefox-selected-tab-shadow-offset-x: 0px; - --wavefox-selected-tab-shadow-offset-y: 2px; - --wavefox-selected-tab-shadow-blur: 2px; - --wavefox-selected-tab-shadow-spread: 0px; - --wavefox-selected-tab-shadow-color: ThreeDShadow; + --wavefox-selected-tab-shadow-offset-x: 0px; + --wavefox-selected-tab-shadow-offset-y: 2px; + --wavefox-selected-tab-shadow-blur: 2px; + --wavefox-selected-tab-shadow-spread: 0px; + --wavefox-selected-tab-shadow-color: var(--chrome-content-separator-color); + + --wavefox-selected-tab-filter-offset-x: 0px; + --wavefox-selected-tab-filter-offset-y: 0px; + --wavefox-selected-tab-filter-blur: 2px; + --wavefox-selected-tab-filter-color: var(--chrome-content-separator-color); + + --wavefox-inner-tabbar-shadow-offset-x: 0px; + --wavefox-inner-tabbar-shadow-offset-y: -4px; + --wavefox-inner-tabbar-shadow-blur: 4px; + --wavefox-inner-tabbar-shadow-spread: -4px; + --wavefox-inner-tabbar-shadow-color: var(--chrome-content-separator-color); + + --wavefox-selected-tab-shadow: var(--wavefox-selected-tab-shadow-offset-x) + var(--wavefox-selected-tab-shadow-offset-y) + var(--wavefox-selected-tab-shadow-blur) + var(--wavefox-selected-tab-shadow-spread) + color-mix(in srgb, var(--wavefox-selected-tab-shadow-color) var(--wavefox-filter-shadow-saturation, 100%), transparent); - --wavefox-selected-tab-shadow: var(--wavefox-selected-tab-shadow-offset-x) - var(--wavefox-selected-tab-shadow-offset-y) - var(--wavefox-selected-tab-shadow-blur) - var(--wavefox-selected-tab-shadow-spread) - color-mix(in srgb, var(--wavefox-selected-tab-shadow-color) var(--wavefox-filter-shadow-saturation, 100%), transparent); + --wavefox-selected-tab-filter: drop-shadow( + var(--wavefox-selected-tab-filter-offset-x) + var(--wavefox-selected-tab-filter-offset-y) + var(--wavefox-selected-tab-filter-blur) + color-mix(in srgb, var(--wavefox-selected-tab-filter-color) var(--wavefox-filter-shadow-saturation, 100%), transparent)); + --wavefox-inner-tabbar-shadow: inset + var(--wavefox-inner-tabbar-shadow-offset-x) + var(--wavefox-inner-tabbar-shadow-offset-y) + var(--wavefox-inner-tabbar-shadow-blur) + var(--wavefox-inner-tabbar-shadow-spread) + color-mix(in srgb, var(--wavefox-inner-tabbar-shadow-color) var(--wavefox-filter-shadow-saturation, 100%), transparent); + + @media (prefers-color-scheme: dark) + { + --wavefox-selected-tab-shadow-color: black; + --wavefox-selected-tab-filter-color: black; + --wavefox-inner-tabbar-shadow-color: black; + } + + @media not -moz-pref("WaveFox.HorizontalTabs.AttachedTabs") + { .tabbrowser-tab[visuallyselected] .tab-background { box-shadow: var(--wavefox-selected-tab-shadow) !important; } } - } - } - - @media -moz-pref("WaveFox.HorizontalTabs.AttachedTabs") - { - @scope (:root) to (tab-group, tab-split-view-wrapper) - { - :scope + + @media -moz-pref("WaveFox.HorizontalTabs.AttachedTabs") { - --wavefox-selected-tab-filter-offset-x: 0px; - --wavefox-selected-tab-filter-offset-y: 0px; - --wavefox-selected-tab-filter-blur: 2px; - --wavefox-selected-tab-filter-color: ThreeDShadow; - - --wavefox-inner-tabbar-shadow-offset-x: 0px; - --wavefox-inner-tabbar-shadow-offset-y: -4px; - --wavefox-inner-tabbar-shadow-blur: 4px; - --wavefox-inner-tabbar-shadow-spread: -4px; - --wavefox-inner-tabbar-shadow-color: ThreeDShadow; - - --wavefox-selected-tab-filter: drop-shadow( - var(--wavefox-selected-tab-filter-offset-x) - var(--wavefox-selected-tab-filter-offset-y) - var(--wavefox-selected-tab-filter-blur) - color-mix(in srgb, var(--wavefox-selected-tab-filter-color) var(--wavefox-filter-shadow-saturation, 100%), transparent)); - - --wavefox-inner-tabbar-shadow: inset - var(--wavefox-inner-tabbar-shadow-offset-x) - var(--wavefox-inner-tabbar-shadow-offset-y) - var(--wavefox-inner-tabbar-shadow-blur) - var(--wavefox-inner-tabbar-shadow-spread) - color-mix(in srgb, var(--wavefox-inner-tabbar-shadow-color) var(--wavefox-filter-shadow-saturation, 100%), transparent); - #TabsToolbar { position: relative !important; @@ -83,8 +81,20 @@ { filter: var(--wavefox-selected-tab-filter) !important; } + + tab-group + { + .tabbrowser-tab[visuallyselected] + { + filter: none !important; + + .tab-background + { + box-shadow: var(--wavefox-selected-tab-shadow) !important; + } + } + } } } } } -*/ diff --git a/chrome/modules/horizontal_tabs/wavefox_tabs.css b/chrome/modules/horizontal_tabs/wavefox_tabs.css index a4a499ad..f3272de3 100644 --- a/chrome/modules/horizontal_tabs/wavefox_tabs.css +++ b/chrome/modules/horizontal_tabs/wavefox_tabs.css @@ -10,71 +10,16 @@ } } -#tabbrowser-tabs -{ - min-height: auto !important; -} - /* Tabs */ .tabbrowser-tab { - &[pinned] - { - &[usercontextid] .tab-context-line - { - position: relative !important; - width: 4px !important; - height: 4px !important; - margin-block: 0px auto !important; - margin-inline: auto !important; - } - } - - &:not([pinned]) - { - &[usercontextid] .tab-context-line - { - position: relative !important; - width: auto !important; - height: 3px !important; - margin-block: 0px auto !important; - margin-inline: calc(var(--tab-border-radius) / 2 + 4px) !important; - background-color: var(--identity-stroke-color) !important; - } - } - &[visuallyselected] { .tab-background { - background-color: var(--toolbar-background-color) !important; - background-image: none !important; - background-clip: content-box !important; - } - - .tab-content - { - color: var(--toolbar-text-color) !important; - } - } - - &:not([visuallyselected]) - { - &:hover - { - .tab-background - { - background-color: var(--toolbarbutton-background-color-hover) !important; - } - } - - &[multiselected] - { - .tab-background - { - background-color: var(--toolbarbutton-background-color-active) !important; - } + background: none !important; + background-color: var(--tab-background-color-selected) !important; } } @@ -83,24 +28,27 @@ outline: none !important; border: none !important; box-shadow: none !important; - - .tab-group-line - { - position: relative !important; - height: 3px !important; - border-radius: 4px !important; - inset-inline: 0px !important; - inset-block: auto 0px !important; - margin-inline: calc(var(--tab-border-radius) / 2 + 4px) !important; - } } - .tab-close-button + &[usercontextid] .tab-context-line { - width: 16px !important; - height: 16px !important; - padding: 2px !important; - margin: 0px !important; + position: static !important; + width: auto !important; + height: 2px !important; + margin-block: calc(-1 * (var(--tab-margin-block) - 2px)) auto !important; + margin-inline: 0px !important; + background: none !important; + background-color: var(--identity-stroke-color) !important; + border: none !important; + } + + .tab-group-line + { + position: static !important; + height: 2px !important; + margin-block: auto calc(-1 * (var(--tab-margin-block) - 2px)) !important; + margin-inline: 0px !important; + border-radius: var(--border-radius-xsmall) !important; } /* Tab Icon Indicators */ @@ -110,16 +58,42 @@ background-position: 50% calc(50% - var(--tab-min-height) / 2 + 2px) !important; } - /* Split View */ + .tab-close-button + { + width: 16px !important; + height: 16px !important; + padding: 2px !important; + margin: 0px !important; + } +} + +/* Split View */ - tab-split-view-wrapper & +tab-split-view-wrapper +{ + & > .tabbrowser-tab { + overflow: visible !important; border: none !important; + + &:not([visuallyselected], [multiselected]) .tab-background + { + background-color: var(--toolbarbutton-background-color-hover) !important; + } .tab-background { margin: 0px !important; - background-color: var(--toolbarbutton-background-color-hover) !important; + } + + &[usercontextid] .tab-context-line + { + margin-block: calc(-1 * var(--tab-margin-block)) auto !important; + } + + .tab-group-line + { + margin-block: auto calc(-1 * var(--tab-margin-block)) !important; } } } @@ -146,19 +120,6 @@ tab-group } } -/* Split View */ - -tab-split-view-wrapper -{ - margin-block: 4px !important; - outline: none !important; -} - - - - - - @@ -178,23 +139,8 @@ tab-split-view-wrapper { :root { - --tab-first-last-inline-margin: clamp(4px, var(--tab-border-radius), calc(var(--tab-min-height) / 2)) !important; - } - - /* Tab Groups / Split View */ - - tab-group - { - .tab-background - { - min-height: auto !important; - } - } - - tab-split-view-wrapper - { - margin-block: 0px !important; - align-items: stretch !important; + --tab-first-last-inline-margin: clamp(0px, var(--tab-border-radius), calc((var(--tab-min-height) + var(--tab-margin-block) * 2) / 2)) !important; + --tab-min-height: 24px !important; } /* Pinned Container / Regular Container */ @@ -210,6 +156,11 @@ tab-split-view-wrapper &[visuallyselected] { z-index: 2 !important; + + .tab-background + { + background-color: var(--toolbar-background-color) !important; + } } &:not([visuallyselected]) @@ -221,9 +172,20 @@ tab-split-view-wrapper z-index: 1 !important; } } + + &[pinned] .tab-content + { + padding-inline: calc(((var(--tab-min-height) + var(--tab-margin-block) * 2) - 16px) / 2) !important; + } + + &[usercontextid] .tab-context-line + { + margin-block: 0px auto !important; + } .tab-background { + min-height: calc(var(--tab-min-height) + var(--tab-margin-block) * 2) !important; margin-inline: calc(-1 * var(--tab-border-radius)) !important; margin-block: 0px !important; border-radius: 0px !important; @@ -245,11 +207,16 @@ tab-split-view-wrapper { margin-inline-start: 0px !important; } + + .tab-group-line + { + margin-block: auto 0px !important; + } } } /* Margins */ - + .tabbrowser-tab:nth-child(1 of .tabbrowser-tab:not([hidden], [dragtarget])) { margin-inline-start: var(--tab-first-last-inline-margin) !important; diff --git a/chrome/userChrome.css b/chrome/userChrome.css index 0553dddc..41bb3556 100644 --- a/chrome/userChrome.css +++ b/chrome/userChrome.css @@ -31,4 +31,4 @@ @import "modules/vertical_tabs/wavefox_tab_media_icons_and_text.css" layer(BasicPriority) /* supports() */ -moz-pref("sidebar.verticalTabs!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", true); @import "modules/vertical_tabs/wavefox_toolbar_buttons.css" layer(BasicPriority) /* supports() */ -moz-pref("sidebar.verticalTabs", true); -/* ---------------------------------------- Third-party styles (Maximum priority) ---------------------------------------- */ +/* ---------------------------------------- Third-party styles (Maximum priority) ---------------------------------------- */