fenix-fox/chrome/tabs_animated_gradient_border.css

96 lines
3.4 KiB
CSS

/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/tabs_animated_gradient_border.css made available under Mozilla Public License v. 2.0
See the above repository for updates as well as full license text. */
/** Adds animated gradient border below tabs and around selected tab.
*
* !IMPORTANT
* This style requires non_floating_sharp_tabs.css to be loaded before it.
*/
/* Constant animation WILL increase CPU usage */
@media (-moz-platform: windows){
/* Increase tab minimum height by 2px on Windows as a workaround for titlebar being unable to collapse below 31px height */
:root[uidensity="compact"]{ --tab-min-height: 31px !important; }
}
/*
Thanks to /u/skenera on reddit for suggesting animating background position and using steps() function to reduce cpu load
*/
@keyframes rotate-gradient{
from{background-position: 0 0;}
to{background-position: 200vw 0;}
}
#TabsToolbar{ background: none !important; }
#TabsToolbar::before{
content: "";
display: block;
position: absolute;
width: 200vw;
height: calc(var(--tab-min-height) + var(--tab-block-margin) + 2px);
background-image: linear-gradient(to right, magenta, red, yellow, green, cyan, blue, magenta);
animation: rotate-gradient 10s steps(60) infinite;
/*animation-timing-function: linear; */ /* smoother animation, but greatly increased cpu use */
pointer-events: none;
z-index: 0;
}
#tabbrowser-arrowscrollbox{
margin-inline: 0 !important;
--tab-shadow-max-size: 0px;
}
.scrollbox-clip[orient="horizontal"] > scrollbox::after{
content: "";
display: -moz-box;
-moz-box-flex: 1 !important;
position: relative;
background-color: var(--lwt-accent-color);
margin-bottom: 1px;
}
#TabsToolbar > .titlebar-buttonbox-container,
.titlebar-spacer,
.tab-background,
.closing-tabs-spacer,
#tabs-newtab-button,
#scrollbutton-up,
#scrollbutton-down,
#tabbrowser-tabs ~ toolbarbutton{
background-color: var(--lwt-accent-color) !important;
margin-bottom: 1px !important;
opacity: 1 !important;
position: relative;
}
.tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected]),
.tab-background[multiselected]:not([selected]){
background-image: linear-gradient(color-mix(in srgb, currentColor 11%, transparent),color-mix(in srgb, currentColor 11%, transparent)) !important;
background-color: var(--lwt-accent-color) !important;
}
.tabbrowser-tab:not([selected]){ min-height: calc(var(--tab-min-height) - 1px) !important; }
.tabbrowser-tab[first-visible-unpinned-tab]{ margin-inline-start: 0 !important; }
vbox.tab-background[selected]{
padding: 0px !important;
border: 1px solid transparent !important;
border-bottom-width: 0px !important;
margin-bottom: 0px !important;
background-clip: padding-box;
outline: none !important;
}
/* This is to override min-height set in non_floating_sharp_tabs.css */
:root[uidensity="compact"] #tabbrowser-tabs[positionpinnedtabs] .tabbrowser-tab[pinned]{
min-height: calc(var(--tab-min-height) -1px) !important;
}
/* remove selected tab line which isn't very useful with this style */
.tab-background[selected]::before{
display: none !important;
}
#tabbrowser-tabs:not([secondarytext-unsupported]) .tab-label-container{
height: var(--tab-min-height) !important;
}
.tab-label{ line-height: 20px !important; }
:root[uidensity="compact"] .tab-label{ line-height: 20px !important; }
:root[uidensity="normal"] .tab-content[selected]{ margin-top: -1px }
#nav-bar{ box-shadow: none !important; }