Skip to content

Instantly share code, notes, and snippets.

@MrOtherGuy
Created July 2, 2024 11:41
Show Gist options
  • Save MrOtherGuy/e6c3659749dc0a616675bfa706fd99f0 to your computer and use it in GitHub Desktop.
Save MrOtherGuy/e6c3659749dc0a616675bfa706fd99f0 to your computer and use it in GitHub Desktop.
:root{
--multirow-n-rows: 1; /* change maximum number of rows before the rows will start to scroll */
--multirow-hover-n-rows: 3;
--multirow-tab-min-width: 100px;
--multirow-tab-dynamic-width: 1; /* Change to 0 for fixed-width tabs using the above width. */
}
#tabbrowser-tabs{
min-height: unset !important;
padding-inline-start: 0px !important
}
@-moz-document url(chrome://browser/content/browser.xhtml){
#scrollbutton-up~spacer,
#scrollbutton-up,
#scrollbutton-down{ display: var(--scrollbutton-display-model,initial) }
#navigator-toolbox{
--multirow-rows: var(--multirow-n-rows);
}
#mainPopupSet:has(> #tabContextMenu:hover) ~ #navigator-toolbox #TabsToolbar,
#TabsToolbar:hover{
--multirow-rows: var(--multirow-hover-n-rows);
}
scrollbox[part][orient="horizontal"]{
transition: max-height 48ms ease-out 200ms;
display: flex;
flex-wrap: wrap;
overflow-y: auto;
max-height: calc((var(--tab-min-height) + 2 * var(--tab-block-margin,0px)) * var(--multirow-rows));
scrollbar-color: currentColor transparent;
scrollbar-width: thin;
scrollbar-gutter: stable;
scroll-snap-type: y mandatory;
}
}
.scrollbox-clip[orient="horizontal"],
#tabbrowser-arrowscrollbox{
overflow: -moz-hidden-unscrollable;
display: inline;
--scrollbutton-display-model: none;
}
.tabbrowser-tab{ scroll-snap-align: start; }
#tabbrowser-tabs .tabbrowser-tab[pinned]{
position: static !important;
margin-inline-start: 0px !important;
}
.tabbrowser-tab[fadein]:not([pinned]){
min-width: var(--multirow-tab-min-width) !important;
flex-grow: var(--multirow-tab-dynamic-width) !important;
}
.tabbrowser-tab > stack{ width: 100%; height: 100% }
/* remove bottom margin so it doesn't throw off row height computation */
#tabs-newtab-button{ margin-bottom: 0 !important; }
#tabbrowser-tabs[hasadjacentnewtabbutton][overflow] > #tabbrowser-arrowscrollbox > #tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button {
display: flex !important;
}
#alltabs-button,
:root:not([customizing]) #TabsToolbar #new-tab-button,
#tabbrowser-arrowscrollbox > spacer,
.tabbrowser-tab::after{ display: none !important }
#titlebar{
height: calc((var(--tab-min-height) + 2 * var(--tab-block-margin,0px)) * var(--multirow-n-rows));
overflow: visible;
z-index: 1;
position: relative;
}
#TabsToolbar{
z-index: 1;
position: relative;
min-height: min-content !important;
background-color: light-dark(rgb(235, 235, 239), rgb(31, 30, 37));
}
:root[lwtheme] #TabsToolbar{
background-image: var(--lwt-additional-images);
background-repeat: var(--lwt-background-tiling);
background-position: var(--lwt-background-alignment);
background-color: var(--lwt-accent-color);
color: inherit;
}
}
@media (-moz-bool-pref: "userchrome.multirowtabs.full-width-tabs.enabled"){
.tabbrowser-tab[fadein]:not([pinned]){ max-width: 100vw !important; }
}
@media (-moz-bool-pref: "userchrome.multirowtabs.scrollbar-handle.enabled"){
#tabbrowser-arrowscrollbox{ -moz-window-dragging: no-drag }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment