Falls es jemand mal testen möchte, hier eine aktuellere Version.
Die Farbanpassungen sind erweitert, und komplett anpassbar; wie es momentan eingestellt ist funktioniert es am besten mit einem dunklen Theme.
Kann man aber beliebig ändern über die Variablen oben im :root Block.
Die Grafik hängt unten an, der Dateipfad dafür sieht hier einen Ordner icons im Ordner mit der CSS Datei vor, in der dieser Code enthalten ist; kann man ebenfalls nach Belieben ändern.
Das Overflow Verhalten ist noch suboptimal, aber nur visuell.
CSS
/*** Curved tabs beta #1c ***/
/*** Allgemeine Anpassungen ***/
:root {
/* Tabs bar height adjust */
/*--tab-block-margin: 4px !important;*/
--tab-block-margin: 2px !important;
--tab-min-height: 36px !important;
/* Ecken ohne Svg / Radius */
--ug-radius: 20px;
/* Rand Farben: Borders */
/* Rand not selected */
--ug-color-border: hsla(0, 0%, 83%, 0.5); /* unselected Kante Tab */
--ug-stroke: var(--ug-color-border); /* unselected Kante Svg */
--ug-kante_hova: hsla(0, 0%, 93%, 0.65); /* unselected alle Kanten hover */
/* Rand selected , multiselected */
--ug-color-border_select: hsla(0, 0%, 93%, 0.75); /* selected Kante Tab */
--ug-stroke_select: var(--ug-color-border_select); /* selected Kante Svg */
--ug-kante_hova_select: hsla(0, 0%, 100%, 0.8); /* multiselected alle Kanten hover */
/* Farben Tabs Hintergrund: */
--ug-color1: hsla(0, 0%, 83%, 0.25); /* basis, unselected */
--ug-color2: hsla(35, 80%, 60%, 0.25); /* selected */
--ug-color2-multi: hsla(35, 80%, 40%, 0.25); /* multiselected */
--ug-color_multi_hova: hsla(35, 70%, 40%, 0.35); /* multiselected hover */
--ug-color_hova: hsla(0, 0%, 50%, 0.25); /* unselected hover */
/* Tab Leiste Kante unten Farbe */
--ug-color3: hsla(0, 0%, 83%, 0.75);
/*--tabs-navbar-shadow-size: 0 !important;*/
}
#TabsToolbar {
-moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
}
/** Distance between tabs **/
.tabbrowser-tab:not([pinned]) {
padding-inline: 2px !important;
overflow: visible !important;
}
/*** Allgemeine Anpassungen Ende ***/
/* Tab Leiste Kante unten */
#TabsToolbar {
background-image: linear-gradient(to top,
var(--ug-color3) 2px, transparent 2px) !important;
}
/* buttons adjust size, position */
/* Buttons smaller by 2px */
#TabsToolbar {
--toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 2px) !important;
}
/* Move buttons up/down, optional, OFF */
/*
#TabsToolbar toolbarbutton {
margin-top: -1px !important;
}
#tabbrowser-tabs {
--ug_margin_plus: 1px -1px;
}
:is(#scrollbutton-up, #scrollbutton-down) {
margin-block: var(--ug_margin_plus) !important;
}
*/
/* adjust tab content */
.tab-content {
margin-top: 2px !important;
padding-inline: 12px 11px !important;
}
.tab-label, .tab-close-button {
text-shadow: none !important;
}
.tab-close-button {
border-radius: 50% !important;
disply: flex !important;
}
.tab-close-button:hover {
/*outline: none !important;*/
outline: 1px solid var(--button-active-bgcolor) !important;
outline-offset: -1px !important;
background-color: var(--button-hover-bgcolor) !important;
}
/* Space for corner first/last tab, overflow bug fix */
/* Test #2 */
.tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) {
padding-left: calc(var(--ug-corner-size) / 2) !important;
}
.tabbrowser-tab:not([pinned]):last-of-type {
padding-right: calc(var(--ug-corner-size) / 2) !important;
}
/* New Tab (+) button, not overflow (+) button */
/* Button rund, Icon Position Höhe angepasst */
#tabbrowser-arrowscrollbox-periphery #tabs-newtab-button .toolbarbutton-icon {
border-radius: 50% !important;
padding-block: 7px 9px !important;
}
/* Position, closer to last tab */
#tabbrowser-arrowscrollbox-periphery {
margin-inline: -14px !important;
z-index: 2 !important;
}
/* New Tab (+) button hover outline */
#tabbrowser-arrowscrollbox-periphery:hover #tabs-newtab-button .toolbarbutton-icon {
/*outline: 1px solid var(--ug-color-border) !important;
outline-offset: -1px !important;*/
box-shadow: inset 0 0px 0px 1px var(--ug-color-border) !important;
}
/*** Tabs base ***/
/* tabs connected bottom */
.tab-background {
margin-block: calc(2 * var(--tab-block-margin)) 0 !important;
}
/*** Tabs Radien, borders, Ecken, Abfolge diverser Tabformen , seitl. borders nur wo keine unteren Ecken ***/
/* basis */
.tabbrowser-tab .tab-background {
border-radius: var(--ug-radius) var(--ug-radius) var(--ug-radius) 0 !important;
border: 1px solid !important;
border-bottom: none !important;
}
.tabbrowser-tab:not([pinned]) .tab-background {
border-left: none !important;
}
/* selected , pinned tabs */
.tabbrowser-tab:is([visuallyselected], [pinned]) .tab-background {
border-radius: var(--ug-radius) var(--ug-radius) 0 0 !important;
}
/* Tab selected seitliche border weg */
.tabbrowser-tab[visuallyselected]:not([pinned]) .tab-background {
border-inline: none !important;
}
/* Tab nach selected tab komplett rund, ohne Ecken */
.tabbrowser-tab:is([visuallyselected]):not([pinned]) + .tabbrowser-tab:not([visuallyselected]) .tab-background {
border-radius: var(--ug-radius) !important;
border-left: 1px solid var(--ug-color-border) !important;
}
.tabbrowser-tab:is([visuallyselected]):not([pinned]) + .tabbrowser-tab:not([visuallyselected]) .tab-background::before {
background-image: none !important;
}
/* letzte tab Ecken beidseitig, ausser kommt nach selected tab */
.tabbrowser-tab:not([pinned]):last-of-type .tab-background {
border-radius: var(--ug-radius) var(--ug-radius) 0 0 !important;
border-inline: none !important;
}
.tabbrowser-tab:is([visuallyselected]):not([pinned]) + .tabbrowser-tab:not([visuallyselected]):last-of-type .tab-background {
border-radius: var(--ug-radius) var(--ug-radius) 0 var(--ug-radius) !important;
border-right: none !important;
}
/*** COLORS ***/
/* Basis */
.tabbrowser-tab .tab-background {
outline: none !important;
box-shadow: none !important;
background-color: var(--ug-color1) !important;
border-color: var(--ug-color-border) !important;
stroke: var(--ug-stroke) !important;
fill: var(--ug-color1) !important;
}
/* Colors, outlines: selected / multiselected / hover */
/* tabs selected base */
.tabbrowser-tab:is([visuallyselected], [multiselected]) .tab-background {
background-image: none !important;
background-color: var(--ug-color2) !important;
stroke: var(--ug-stroke_select) !important;
border-color: var(--ug-color-border_select) !important;
fill: var(--ug-color2) !important;
}
/* tabs multiselected */
.tabbrowser-tab:not([visuallyselected])[multiselected] .tab-background {
background-color: var(--ug-color2-multi) !important;
fill: var(--ug-color2-multi) !important;
}
/* tabs multiselected hover */
.tabbrowser-tab:not([visuallyselected]):hover .tab-background {
background-color: var(--ug-color_multi_hova) !important;
fill: var(--ug-color_multi_hova) !important;
stroke: var(--ug-kante_hova_select) !important;
border-color: var(--ug-kante_hova_select) !important;
}
/* tabs unselected hover */
.tabbrowser-tab:not([visuallyselected], [multiselected]):hover .tab-background {
background-color: var(--ug-color_hova) !important;
fill: var(--ug-color_hova) !important;
/*stroke: var(--ug-stroke_select) !important;*/
stroke: var(--ug-kante_hova) !important;
border-color: var(--ug-kante_hova) !important;
}
/*** tabs corners ***/
/* base */
#TabsToolbar {
--ug-corner-size: var(--tab-min-height);
}
.tabbrowser-tab:not([pinned]) .tab-background::before,
.tabbrowser-tab:not([pinned]) .tab-background::after {
content: "";
position: absolute;
width: var(--ug-corner-size) !important;
height: var(--ug-corner-size) !important;
background-size: var(--ug-corner-size) !important;
background-repeat: no-repeat !important;
background-position: bottom center !important;
mask-image: linear-gradient(215deg, transparent, black 18px) !important;
}
/* left */
.tabbrowser-tab:not([pinned]) .tab-background::before {
left: calc(0px - var(--ug-corner-size) / 2);
background-image: url(icons/tab_corner_ug.svg) !important;
}
/* right */
.tabbrowser-tab:not([pinned]):is([visuallyselected], :last-of-type) .tab-background::after {
right: calc(0px - var(--ug-corner-size) / 2);
background-image: url(icons/tab_corner_ug.svg) !important;
transform: scaleX(-1) !important;
}
Alles anzeigen