1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. TEST - camp-firefox.de
  2. Horstmann

Beiträge von Horstmann

  • Tabform

    • Horstmann
    • 13. November 2023 um 23:03
    Zitat von Mira_Belle

    Bugs.

    Wieder die fehlenden Vektorgrafiken.

    Korrektur:

    CSS
    /* -------------------------------------------------------------------------------------------------------------- */
        /* fill colors selected / unselected hover */
        .tabbrowser-tab:is([visuallyselected], [multiselected]) .tab-background::before, 
        .tabbrowser-tab:is([visuallyselected], [multiselected]) .tab-background::after {
            fill: var(--ug-color2) !important;       
            stroke: var(--uc-color-orange-normal) !important;
        }
    
        .tabbrowser-tab:not([visuallyselected]):is([multiselected]) .tab-background::before, 
        .tabbrowser-tab:not([visuallyselected]):is([multiselected]) .tab-background::after {
            fill: var(--ug-color2-multi) !important;
        }
    
        .tabbrowser-tab:not([visuallyselected]):is([multiselected]):hover .tab-background::before, 
        .tabbrowser-tab:not([visuallyselected]):is([multiselected]):hover .tab-background::after {
            fill: var(--ug-color_multi_hova) !important;
        }
    
        /*  right corner bg, selected --> vor not selected  */
        .tabbrowser-tab:is([visuallyselected]) + .tabbrowser-tab:not([visuallyselected]) .tab-background::before {
            background-image: none !important;
        }
    /* -------------------------------------------------------------------------------------------------------------- */
    Alles anzeigen

    Da kann entweder die Grafik komplett fehlen, und dann macht dieser geänderte CSS Code gar keinen Unterschied, weil er nur die Kanten der Grafik betrifft.

    Oder du hast evtl. die Farben verändert bevor du den Code unverändert probiert hast, und in einem Profil ohne andere CSS; die Farben sind sonst eigentlich festgemeisselt.

    Zitat von Mira_Belle

    Code für Tabs unten

    Da habe ich lange für gebraucht, dass das Ergebnis gut ausschaut.

    Bei allen anderen Ideen, die ich hatte, war nie das Ergebnis zufriedenstellend.

    Andere Baustelle, aber der Code ist ... Müll. Sorry. ;)

    Zitat von Mira_Belle

    Kommen wir zu guterletzt noch zu einer Sache, die mir Kopfschmerzen bereitet!

    Es gib an mehreren Stellen im Code eine Formel.

    z.B.

    calc( var(--tab-min-height) + 10px );

    calc(0px - var(--ug-corner-size) / 2);

    calc(-10px + var(--ug-corner-size) / 2);

    calc(38px - var(--ug-corner-size) - 12px);

    und auch

    calc((var(--tab-min-height) - 16px) / 2 - 2px);

    Wo kommen die her und wie leiten sie sich ab?

    Alles anzeigen

    Zuerst mal, calc( var(--tab-min-height) + 10px ); kommt aus deinem Tabs unten Code, nicht von mir - damit will ich nichts zu tun haben. ;)

    Generell ist --tab-min-height eine interne Firefox Variable, mit der man eine Menge Sinn und Unsinn anrichten kann, genauso wie mit --tab-block-margin.


    Die var(--ug-corner-size) Regeln in dem Beispiel kommen mir teilweise auch unbekannt vor - hast du daran selber was gedreht, oder von alten Versionen übernommen?

    Falls ja - keine gute Idee. 8)

    --ug-corner-size ist schlicht eine selber gemachte Variable für die Höhe und Breite der Eckengrafik, und gleich mit --tab-min-height, die ganz oben neu definiert wird.

    Und eigentlich nur deshalb um den schwachsinnigen Kompaktmodus mit zu bedienen. X/

    Der Code ist eigentlich nur dafür gedacht die Farben im oberen Bereich zu ändern und ein evtl. paar Kleinigkeiten für Buttons etc., und sieht keine anderweitige CSS vor die eingreift oder manche Teile überschreibt - wofür man auch nicht planen kann.

    Wenn also der Code in einem sonst unveränderten Testprofil nicht funktioniert, kann ich mir das gerne anschauen.

    Andernfalls eben nicht. :|

  • Tabform

    • Horstmann
    • 13. November 2023 um 13:23
    Zitat von Mira_Belle

    Horstmann

    Die letzte, neue Version gefiel mir sehr gut, vielen Dank.
    Ich habe noch ein paar Kleinigkeiten verändert, klitzekleine Bugs beseitigt und Farben angepasst.

    Hier das komplette CSS

    Prima! :)

    Was für Bugs hast du denn selber noch gefunden/geändert, gibt ja bestimmt noch einige?

    Die Border unten war in meinem Setup aber so gewollt, macht die seitlichen runden Kanten sauberer, aber das hängt von den anderen Farben etc. ab.

    Sonst hab ich auf den ersten Blick nichts gesehen, ausser dass dein Code für Tabs unten bei mir gar nicht funktioniert, aber das ist nur weil ich auf einem Mac bin. ;)

    Trotzdem sieht der Code dafür nicht dolle aus, würd ich bei Gelegenheit nochmal rangehen.

  • Tabform

    • Horstmann
    • 12. November 2023 um 23:43
    Zitat von Mira_Belle

    Werde ich machen, danke.

    Aufgeräumt und besser kommentiert, eine Version für dein dunkles Theme, ist evtl. einfacher zu arbeiten mit.

    Edit: mehr Overflow Bug Fixes.

    CSS
    /*** Curved tabs beta D2c sauber - dunkles Theme ***/
    
    
    /*** General adjustments ***/
    
    :root {
    
    /* Tabs bar height adjust */
        /*--tabs-navbar-shadow-size: 0 !important;*/
        /*--tab-block-margin: 4px !important;*/
        --tab-block-margin: 2px !important;
        --tab-min-height: 36px !important;
    
    /* Edges without corner Svg /  Radius */
        /*--ug-radius: 20px;*/
        --ug-radius: 19px;
    
    
    /* Edges (borders, outlines) colors */
    
    /* Edges not selected */
        --ug-color-border: hsla(0, 0%, 83%, 0.5);                       /* hellgrau unselected Kante Tab */
        --ug-stroke: var(--ug-color-border);                                              /* unselected Kante Svg */
        --ug-kante_hova: hsla(0, 0%, 93%, 0.65);        /* mittelgrau unselected alle Kanten hover */
    
    /* Edges selected , multiselected */
        --ug-color-border_select: hsla(0, 0%, 93%, 0.75);                     /* mittelgrau hell+ selected Kante Tab */
        --ug-stroke_select:  var(--ug-color-border_select);                                              /* selected Kante Svg */
        --ug-kante_hova_select: hsla(0, 0%, 100%, 0.8);  /* mittelgrau hell++ multiselected alle Kanten hover */
    
    
    /* Tabs background colors:  */
    
        --ug-color1: hsla(0, 0%, 83%, 0.25);                                               /* hellgrau basis, unselected */
        --ug-color2: hsla(35, 80%, 60%, 0.25);                                                    /* zart orange selected */
        --ug-color2-multi: hsla(35, 80%, 40%, 0.25);                        /*zart orange dunkel+ multiselected */
        --ug-color_multi_hova: hsla(35, 70%, 40%, 0.35);   /* zart orange dunkel++ multiselected hover */
        --ug-color_hova: hsla(0, 0%, 50%, 0.25);                                  /* mittelgrau#2 unselected hover */
    
    /* Tab bar unten, border bottom color */
        --ug-color_bottom: hsla(0, 0%, 93%, 1);                   /* hellgrau nicht transparent, Kante unten */
    }
    
    /* Tab bar border bottom */
    
    #TabsToolbar {
        box-shadow: inset 0px -1px var(--ug-color_bottom) !important;
    }
    
    /*** General adjustments end ***/
    
    
                                                               /*** Tabs base ***/
    
    /* tabs connected bottom */
    
    .tab-background {
        margin-block: calc(2 * var(--tab-block-margin)) 0 !important;
    }
    
    /*** Tabs Radien, borders, corners, tab shapes order , inline borders only where no custom corners ***/
    
    /*  Basis alle Tabs  */
    
    .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;
    }
    
    /*  Zusatzregeln, überschreiben Basis alle Tabs  */
    
    /* selected , pinned tabs */
    .tabbrowser-tab:is([visuallyselected], [pinned]) .tab-background {
        border-radius: var(--ug-radius) var(--ug-radius) 0 0 !important;
    }
    /* Tab selected no inline border */
    .tabbrowser-tab[visuallyselected]:not([pinned]) .tab-background {
        border-inline: none !important;
    }
    
    /* Tab after selected tab completely round, no corners */
    .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;
    }
    
    /* Last tab dual corners, unless it comes after 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  ***/
    
    /**  In about:config set svg.context-properties.content.enabled to true  **/
    
    /*  Basis alle Tabs  */
    
    .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;
    }
    
    /*  Zusatzregeln, überschreiben Basis alle Tabs  */
    
    /* 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-kante_hova) !important;
        border-color: var(--ug-kante_hova) !important;
    }
    
                                                          /***  tabs corners  ***/
    /*  base  */
    
    #TabsToolbar {
        --ug-corner-size: var(--tab-min-height);
        /*--ug-corner-image: url(icons/tab_corner_ug.svg) !important;*/
        --ug-corner-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128' viewBox='0 0 32 32'%3E%3Cpath d='M0 33 L3 32.5 A16 16 0 0 0 15.5 16 L 16 16 L 16 33 Z' fill='context-fill'/%3E%3Cpath d='M3 32.5 A16 16 0 0 0 15.5 16' fill='rgba(155,122,0,0)' stroke='context-stroke' stroke-width='1px'/%3E%3Cpath d='M0 16 L16 16 A15.5 15.5 0 0 1 32 0 L 32 0 L 32 16 Z' fill='rgba(155,122,0,0)'/%3E%3Cpath d='M15.5 16 A18.5 18 0 0 1 35.5 -0.5' fill='transparent' stroke='context-stroke' stroke-width='1px' /%3E%3C/svg%3E%0A");
    }
    
    .tabbrowser-tab .tab-background::before, 
    .tabbrowser-tab .tab-background::after {
        content: "";
        position: absolute;
        -moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
        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;
        pointer-events: none !important;
    }
    
    /*  left  */
    .tabbrowser-tab .tab-background::before {
        left: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
    }
    
    /*  right  */
    .tabbrowser-tab:is([visuallyselected], :last-of-type) .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
        transform: scaleX(-1) !important;
    }
    
    .tabbrowser-tab:is([visuallyselected]):not([pinned]) + .tabbrowser-tab:not([visuallyselected]) .tab-background::before {
        background-image: none !important;
    }
    
    /*  pinned no corners  */
    .tabbrowser-tab[pinned] .tab-background::before, 
    .tabbrowser-tab[pinned] .tab-background::after {
        display: none !important;
    }
    
                                            /****   Margins etc. overflow fix   ****/
    /*
    .tabbrowser-tab:not([pinned]) {
        outline: 1px solid hsla(135, 80%, 50%, 0.75) !important;
        outline-offset: -1px !important;
    }
    */
    
    /* Base values ; tab padding, margin */
    #tabbrowser-tabs {
        --ug-tab_Pad: calc(8px + var(--ug-corner-size) / 2);                    /* 26px */
        --ug-tab_Marge: calc(0px - var(--ug-corner-size) - 12px);          /* -48px */
        /*--tab-min-width:  120px !important;*/
    }
    
    /* Basis all Tabs */
    .tabbrowser-tab:not([pinned]) {
        overflow: visible !important;
        padding-inline: var(--ug-tab_Pad) !important;
    }
    
    /* Tab before any tab */
    .tabbrowser-tab:not([pinned], [visuallyselected]) + .tabbrowser-tab:not([pinned]) {
        margin-inline: var(--ug-tab_Marge) 0 !important;
    }
    
    /* Tab after selected */
    .tabbrowser-tab:not([pinned]):is([visuallyselected]) + .tabbrowser-tab:not([pinned]) {
        margin-inline: var(--ug-tab_Marge) 0 !important;
    }
    
    /* Tab selected  */
    .tabbrowser-tab:not([pinned]):is([visuallyselected], :last-of-type) {
        margin-inline: 0px !important;
    }
    
    /* Last tab after selected tab */
    .tabbrowser-tab:is([visuallyselected]):not([pinned]) + .tabbrowser-tab:not([visuallyselected]):last-of-type {
        margin-inline: var(--ug-tab_Marge) 0px !important;
    }
    
    
    /***  Space for corner left/right - first/last tab, overflow bugs fix  ***/
    /* Test #6 */
    
    #tabbrowser-tabs .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) {
        margin-inline-start: 0px !important;
    }
    #tabbrowser-tabs:not([pinned]) .tabbrowser-tab:last-of-type {
        margin-inline-end: 0px !important;
    }
    
    #tabbrowser-tabs[overflow]:not([movingtab]) .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) {
        margin-inline-start: -12px !important;
    }
    #tabbrowser-tabs[overflow]:not([movingtab]) .tabbrowser-tab:last-of-type {
        margin-inline-end: -12px !important;
    }
    
    
    /**  Diverses  **/
    
    /* Adjust tab content position */
    .tab-content {
        margin-top: 3px !important;
    }
    .tabbrowser-tab:not([pinned]) .tab-content {
        padding-inline: 12px 10px !important;
    }
    
    .tab-label, .tab-close-button {
        text-shadow: none  !important;
    }
    
    /** Buttons adjust size, position **/
    
    /* Buttons smaller by 2px */
    #TabsToolbar {
        --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 2px) !important;
    }
    
    /* New Tab (+) button, not overflow (+) button */
    
    /* Button rund, smaller */
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button .toolbarbutton-icon {
        border-radius: 50% !important;
        --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 3px) !important;
        padding-block: 6px 8px !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;
    }
    /* Position, closer to last tab */
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button {
        margin: 0 !important;
        margin-top: 2px !important;
        padding-inline: 0px !important;
    }
    .tabbrowser-tab:not([pinned]) + #tabbrowser-arrowscrollbox-periphery {
        margin-left: -16px !important;
        z-index: 2 !important;
    }
    
    /* Close button */
    .tabbrowser-tab:not([pinned]) .tab-close-button {
        border-radius: 50% !important;
        display: 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;
    }
    
    
    /* 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;
    }
    */
    
    /***  Tab left higher z index / Vorrang vor Tab rechts  ***/
    /*
    .tabbrowser-tab:not([pinned]) .tab-content {
        z-index: 1 !important;
    }*/
    Alles anzeigen
  • Tabform

    • Horstmann
    • 11. November 2023 um 19:14
    Zitat von Mira_Belle

    Da nun an dieser Stelle die Entwicklung eingestellt wird, kann ich mich ja beruhigt an eine verbesserte Version

    der meinigen machen.

    Bevor ich den dringend nötigen Termin bei der Suchtberatung mache ;) - einen könntest du vielleicht noch testen. 8)

    Der hier sollte kaum noch Auffälligkeiten im Overflow haben, und sollte besser als der ältere Code sein den du benutzt...
    Farben kann man wieder komplett oben anpassen, ist hier zum Testen auf ein helles Profil eingestellt.

    CSS
    /*** Curved tabs beta D2 für hell ***/
    
    
    /*** General adjustments ***/
    
    :root {
    
    /* Tabs bar height adjust */
        /*--tab-block-margin: 4px !important;*/
        --tab-block-margin: 2px !important;
        --tab-min-height: 36px !important;
    
    /* Edges without Svg /  Radius */
        /*--ug-radius: 20px;*/
        --ug-radius: 19px;
    
    /* Edges (borders, outlines) colors */
    
    /* Edges not selected */
        --ug-color-border: hsla(0, 0%, 33%, 0.5);                  /* dunkelgrau unselected Kante Tab 83 */
        --ug-stroke: var(--ug-color-border);                                                   /* unselected Kante Svg */
        --ug-kante_hova: hsla(0, 0%, 43%, 0.65);        /* mittelgrau unselected alle Kanten hover 93 */
    
    /* Edges selected , multiselected */
        --ug-color-border_select: hsla(0, 0%, 43%, 0.75);        /* mittelgrau hell+ selected Kante Tab */
        --ug-stroke_select:  var(--ug-color-border_select);                                /* selected Kante Svg */
        --ug-kante_hova_select: hsla(0, 0%, 49%, 0.8);  /* mittelgrau hell++ multiselected alle Kanten hover 100 */
    
    
    /* Tabs backgrounds:  */
    
        --ug-color1: hsla(0, 0%, 83%, 0.25);                                               /* hellgrau basis, unselected */
        --ug-color2: hsla(35, 80%, 60%, 0.25);                                                    /* zart orange selected */
        --ug-color2-multi: hsla(35, 80%, 40%, 0.25);                        /*zart orange dunkel+ multiselected */
        --ug-color_multi_hova: hsla(35, 70%, 40%, 0.35);   /* zart orange dunkel++ multiselected hover */
        --ug-color_hova: hsla(0, 0%, 50%, 0.25);                                  /* mittelgrau#2 unselected hover */
    
    /* Tab bar unten, border bottom color */
        --ug-color3: hsla(0, 0%, 43%, 1);                   /* dunkelgrau nicht transparent, Kante zu Website  */
    
        /*--tabs-navbar-shadow-size: 0 !important;*/
    }
    
    /* Tab bar unten, border bottom mit NavToolbox */
    /*
    #TabsToolbar {
        border-image: linear-gradient(to top, 
            var(--ug-color-border) 1px, transparent 1px) 1 / 0 0 1px 0 !important;
    }
    */
    #navigator-toolbox {
        /*border-bottom: 1px solid var(--ug-color-border) !important;*/
        border-bottom: none !important;
        box-shadow: inset 0px -1px var(--ug-color3) !important;
    }
    
    
    /*** General adjustments end ***/
    
    
    /* 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: 3px !important;
    }
    .tabbrowser-tab:not([pinned]) .tab-content {
        padding-inline: 12px 10px !important;
    }
    
    .tab-label, .tab-close-button {
        text-shadow: none  !important;
    }
    
    .tabbrowser-tab:not([pinned]) .tab-close-button {
        border-radius: 50% !important;
        display: 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;
    }
    
                                                               /*** Tabs base ***/
    
    /* tabs connected bottom */
    
    .tab-background {
        margin-block: calc(2 * var(--tab-block-margin)) 0 !important;
    }
    
    /*** Tabs Radien, borders, corners, tab shapes order , inline borders only where no custom corners ***/
    
    /*   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 no inline border */
    .tabbrowser-tab[visuallyselected]:not([pinned]) .tab-background {
        border-inline: none !important;
    }
    
    /* Tab after selected tab completely round, no corners */
    .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;
    }
    
    /* Last tab dual corners, unless it comes after 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  ***/
    
    /**  In about:config set svg.context-properties.content.enabled to true  **/
    
    
    /* 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);
        /*--ug-corner-image: url(icons/tab_corner_ug.svg) !important;*/
        --ug-corner-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128' viewBox='0 0 32 32'%3E%3Cpath d='M0 33 L3 32.5 A16 16 0 0 0 15.5 16 L 16 16 L 16 33 Z' fill='context-fill'/%3E%3Cpath d='M3 32.5 A16 16 0 0 0 15.5 16' fill='rgba(155,122,0,0)' stroke='context-stroke' stroke-width='1px'/%3E%3Cpath d='M0 16 L16 16 A15.5 15.5 0 0 1 32 0 L 32 0 L 32 16 Z' fill='rgba(155,122,0,0)'/%3E%3Cpath d='M15.5 16 A18.5 18 0 0 1 35.5 -0.5' fill='transparent' stroke='context-stroke' stroke-width='1px' /%3E%3C/svg%3E%0A");
    }
    
    .tabbrowser-tab .tab-background::before, 
    .tabbrowser-tab .tab-background::after {
        content: "";
        position: absolute;
        -moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
        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 .tab-background::before {
        left: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
    }
    
    /*  right  */
    .tabbrowser-tab[visuallyselected] .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
        transform: scaleX(-1) !important;
    }
    
    .tabbrowser-tab:last-of-type .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
        transform: scaleX(-1) !important;
    }
    
    /*  pinned no corners  */
    .tabbrowser-tab[pinned] .tab-background::before, 
    .tabbrowser-tab[pinned] .tab-background::after {
        display: none !important;
    }
    
    
    
    
                                            /****   TEST margins etc overflow    ****/
    /*
    .tabbrowser-tab:not([pinned]) {
        outline: 1px solid hsla(135, 80%, 50%, 0.75) !important;
        outline-offset: -1px !important;
    }
    */
    
    
                                               /*  TEST base -> 36px/2 + 2px padding Abstand    */
    
    #tabbrowser-tabs {
        /*--ug-tab_Pad: calc(2px + var(--ug-corner-size) / 2);*/                /* 20px */
        /*--ug-tab_Marge: calc(0px - var(--ug-corner-size));*/                /* -36px */
    
        /*--ug-tab_Pad: calc(6px + var(--ug-corner-size) / 2);*/                /* 24px */
        /*--ug-tab_Marge: calc(0px - var(--ug-corner-size) - 8px);*/        /* -44px */
    
        --ug-tab_Pad: calc(8px + var(--ug-corner-size) / 2);                    /* 26px */
        --ug-tab_Marge: calc(0px - var(--ug-corner-size) - 12px);          /* -48px */
    
        /*--tab-min-width:  120px !important;*/
    }
                                                                                                       /* basis TEST */
    
    .tabbrowser-tab:not([pinned]) {
        overflow: visible !important;
        padding-inline: var(--ug-tab_Pad) !important;
    }
    
                                                      /* Tab before any tab TEST */
    
    .tabbrowser-tab:not([pinned], [visuallyselected]) + .tabbrowser-tab:not([pinned]) {
        margin-inline: var(--ug-tab_Marge) 0 !important;
    }
                                                      /* Tab after selected TEST */
    
    .tabbrowser-tab:not([pinned]):is([visuallyselected]) + .tabbrowser-tab:not([pinned]) {
        margin-inline: var(--ug-tab_Marge) 0 !important;
    }
    
                                                                                                           /* Tab selected  TEST */
    .tabbrowser-tab:not([pinned]):is([visuallyselected], :last-of-type) {
        margin-inline: 0px !important;
    }
                                                                                     /* Last tab after selected tab TEST */
    
    .tabbrowser-tab:is([visuallyselected]):not([pinned]) + .tabbrowser-tab:not([visuallyselected]):last-of-type {
        margin-inline: var(--ug-tab_Marge) 0px !important;
    }
    
                                                     /* divers TEST */
    
    /* Space for corner left/right - first/last tab, overflow bug fix ? */
    /* Test #5 */
    
    #tabbrowser-tabs:not([overflow]) .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) {
        margin-inline-start: 0px !important;
    }
    /*
    #tabbrowser-tabs[overflow] .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) {
        margin-inline-start: -12px !important;
    }
    */
    
    /*
    #tabbrowser-tabs[overflow] .tabbrowser-tab:nth-last-child(1 of [pinned]) {
        margin-inline-start: 40px !important;
        outline: 1px solid hsla(35, 80%, 50%, 0.75) !important;
        outline-offset: -1px !important;
    }
    */
    
    /* New Tab (+) button, not overflow (+) button */
    
    /* Button rund, smaller */
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button .toolbarbutton-icon {
        border-radius: 50% !important;
        --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 3px) !important;
        padding-block: 6px 8px !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;
    }
    
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button {
        margin: 0 !important;
        margin-top: 3px !important;
        padding-inline: 0px !important;
    }
    
    /* Position, closer to last tab */
    .tabbrowser-tab:not([pinned]) + #tabbrowser-arrowscrollbox-periphery {
        margin-left: -16px !important;
        z-index: 2 !important;
    }
    
    /*  tab left higher z index / Vorrang vor tab rechts */
    .tabbrowser-tab:not([pinned]) .tab-content {
        z-index: 1 !important;
    }
    Alles anzeigen

    Für dein Theme wie du es benutzt, könnte sowas evtl. ein Anfang sein:

    CSS
    /*** Curved tabs beta D2 für Dunkel ***/
    
    
    /*** General adjustments ***/
    
    :root {
    
    /* Tabs bar height adjust */
        /*--tab-block-margin: 4px !important;*/
        --tab-block-margin: 2px !important;
        --tab-min-height: 36px !important;
    
    /* Edges without Svg /  Radius */
        /*--ug-radius: 20px;*/
        --ug-radius: 19px;
    
    /* Edges (borders, outlines) colors */
    
    /* Edges not selected */
        --ug-color-border: hsla(0, 0%, 83%, 0.5);                  /* hellgrau unselected Kante Tab */
        --ug-stroke: var(--ug-color-border);                                                   /* unselected Kante Svg */
        --ug-kante_hova: hsla(0, 0%, 93%, 0.65);        /* mittelgrau unselected alle Kanten hover */
    
    /* Edges selected , multiselected */
        --ug-color-border_select: hsla(0, 0%, 93%, 0.75);        /* mittelgrau hell+ selected Kante Tab */
        --ug-stroke_select:  var(--ug-color-border_select);                                /* selected Kante Svg */
        --ug-kante_hova_select: hsla(0, 0%, 100%, 0.8);  /* mittelgrau hell++ multiselected alle Kanten hover */
    
    
    /* Tabs backgrounds:  */
    
        --ug-color1: hsla(0, 0%, 83%, 0.25);                                               /* hellgrau basis, unselected */
        --ug-color2: hsla(35, 80%, 60%, 0.25);                                                    /* zart orange selected */
        --ug-color2-multi: hsla(35, 80%, 40%, 0.25);                        /*zart orange dunkel+ multiselected */
        --ug-color_multi_hova: hsla(35, 70%, 40%, 0.35);   /* zart orange dunkel++ multiselected hover */
        --ug-color_hova: hsla(0, 0%, 50%, 0.25);                                  /* mittelgrau#2 unselected hover */
    
    /* Tab bar unten, border bottom color */
        --ug-color3: hsla(0, 0%, 93%, 1);                   /* hellgrau nicht transparent, Kante unten */
    
        /*--tabs-navbar-shadow-size: 0 !important;*/
    }
    
    /* Tab bar unten, borders bottom mit NavToolbox */
    /*
    #TabsToolbar {
        border-image: linear-gradient(to top, 
            var(--ug-color-border) 1px, transparent 1px) 1 / 0 0 1px 0 !important;
    }
    */
    #navigator-toolbox {
        /*border-bottom: 1px solid var(--ug-color-border) !important;*/
        /*border-bottom: none !important;*/
        box-shadow: inset 0px -1px var(--ug-color3) !important;
    }
    
    
    /*** General adjustments end ***/
    
    
    /* 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: 3px !important;
    }
    .tabbrowser-tab:not([pinned]) .tab-content {
        padding-inline: 12px 10px !important;
    }
    
    .tab-label, .tab-close-button {
        text-shadow: none  !important;
    }
    
    .tabbrowser-tab:not([pinned]) .tab-close-button {
        border-radius: 50% !important;
        display: 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;
    }
    
                                                               /*** Tabs base ***/
    
    /* tabs connected bottom */
    
    .tab-background {
        margin-block: calc(2 * var(--tab-block-margin)) 0 !important;
    }
    
    /*** Tabs Radien, borders, corners, tab shapes order , inline borders only where no custom corners ***/
    
    /*   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 no inline border */
    .tabbrowser-tab[visuallyselected]:not([pinned]) .tab-background {
        border-inline: none !important;
    }
    
    /* Tab after selected tab completely round, no corners */
    .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;
    }
    
    /* Last tab dual corners, unless it comes after 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  ***/
    
    /**  In about:config set svg.context-properties.content.enabled to true  **/
    
    
    /* 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);
        /*--ug-corner-image: url(icons/tab_corner_ug.svg) !important;*/
        --ug-corner-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128' viewBox='0 0 32 32'%3E%3Cpath d='M0 33 L3 32.5 A16 16 0 0 0 15.5 16 L 16 16 L 16 33 Z' fill='context-fill'/%3E%3Cpath d='M3 32.5 A16 16 0 0 0 15.5 16' fill='rgba(155,122,0,0)' stroke='context-stroke' stroke-width='1px'/%3E%3Cpath d='M0 16 L16 16 A15.5 15.5 0 0 1 32 0 L 32 0 L 32 16 Z' fill='rgba(155,122,0,0)'/%3E%3Cpath d='M15.5 16 A18.5 18 0 0 1 35.5 -0.5' fill='transparent' stroke='context-stroke' stroke-width='1px' /%3E%3C/svg%3E%0A");
    }
    
    .tabbrowser-tab .tab-background::before, 
    .tabbrowser-tab .tab-background::after {
        content: "";
        position: absolute;
        -moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
        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 .tab-background::before {
        left: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
    }
    
    /*  right  */
    .tabbrowser-tab[visuallyselected] .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
        transform: scaleX(-1) !important;
    }
    
    .tabbrowser-tab:last-of-type .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
        transform: scaleX(-1) !important;
    }
    
    /*  pinned no corners  */
    .tabbrowser-tab[pinned] .tab-background::before, 
    .tabbrowser-tab[pinned] .tab-background::after {
        display: none !important;
    }
    
    
    
    
                                            /****   TEST margins etc overflow    ****/
    /*
    .tabbrowser-tab:not([pinned]) {
        outline: 1px solid hsla(135, 80%, 50%, 0.75) !important;
        outline-offset: -1px !important;
    }
    */
    
    
                                               /*  TEST base -> 36px/2 + 2px padding Abstand    */
    
    #tabbrowser-tabs {
        /*--ug-tab_Pad: calc(2px + var(--ug-corner-size) / 2);*/                /* 20px */
        /*--ug-tab_Marge: calc(0px - var(--ug-corner-size));*/                /* -36px */
    
        /*--ug-tab_Pad: calc(6px + var(--ug-corner-size) / 2);*/                /* 24px */
        /*--ug-tab_Marge: calc(0px - var(--ug-corner-size) - 8px);*/        /* -44px */
    
        --ug-tab_Pad: calc(8px + var(--ug-corner-size) / 2);                    /* 26px */
        --ug-tab_Marge: calc(0px - var(--ug-corner-size) - 12px);          /* -48px */
    
        /*--tab-min-width:  120px !important;*/
    }
                                                                                                       /* basis TEST */
    
    .tabbrowser-tab:not([pinned]) {
        overflow: visible !important;
        padding-inline: var(--ug-tab_Pad) !important;
    }
    
    /*
    .tabbrowser-tab:not([pinned]):last-of-type {
        padding-inline: var(--ug-tab_Pad) 18px !important;
    }
    */
    
                                                      /* Tab before any tab TEST */
    
    .tabbrowser-tab:not([pinned], [visuallyselected]) + .tabbrowser-tab:not([pinned]) {
        margin-inline: var(--ug-tab_Marge) 0 !important;
    }
                                                      /* Tab after selected TEST */
    
    .tabbrowser-tab:not([pinned]):is([visuallyselected]) + .tabbrowser-tab:not([pinned]) {
        margin-inline: var(--ug-tab_Marge) 0 !important;
    }
    
                                                                                                           /* Tab selected  TEST */
    .tabbrowser-tab:not([pinned]):is([visuallyselected], :last-of-type) {
        margin-inline: 0px !important;
    }
                                                                                     /* Last tab after selected tab TEST */
    
    .tabbrowser-tab:is([visuallyselected]):not([pinned]) + .tabbrowser-tab:not([visuallyselected]):last-of-type {
        margin-inline: var(--ug-tab_Marge) 0px !important;
    }
    
                                                     /* divers TEST */
    
    /* Space for corner left/right - first/last tab, overflow bug fix ? */
    /* Test #5 */
    
    #tabbrowser-tabs:not([overflow]) .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) {
        margin-inline-start: 0px !important;
    }
    
    /*
    #tabbrowser-tabs[overflow] .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) {
        margin-inline-start: -12px !important;
    }
    */
    /*
    #tabbrowser-tabs[overflow] .tabbrowser-tab:nth-last-child(1 of [pinned]) {
        margin-inline-start: 40px !important;
        outline: 1px solid hsla(35, 80%, 50%, 0.75) !important;
        outline-offset: -1px !important;
    }
    */
    
    /* New Tab (+) button, not overflow (+) button */
    
    /* Button rund, smaller */
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button .toolbarbutton-icon {
        border-radius: 50% !important;
        --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 3px) !important;
        padding-block: 6px 8px !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;
    }
    
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button {
        margin: 0 !important;
        margin-top: 2px !important;
        padding-inline: 0px !important;
    }
    
    /* Position, closer to last tab */
    .tabbrowser-tab:not([pinned]) + #tabbrowser-arrowscrollbox-periphery {
        margin-left: -16px !important;
        z-index: 2 !important;
    }
    
    /*  tab left higher z index / Vorrang vor tab rechts */
    .tabbrowser-tab:not([pinned]) .tab-content {
        z-index: 1 !important;
    }
    Alles anzeigen
  • Blauer Rahmen um Tabbar oder Titlebar

    • Horstmann
    • 10. November 2023 um 21:18
    Zitat von Nikolaus2001at

    Kurz und knackig, so gefällt mir das.

    Prima dass es klappt. :)

    Es geht auch noch etwas einfacher; da gibt es verschiedene Wege.

    CSS
    #TabsToolbar, #nav-bar {
        outline: 2px solid #00bbff !important;
        outline-offset: -2px !important;
    }
  • Tabform

    • Horstmann
    • 10. November 2023 um 17:39
    Zitat von Mira_Belle

    Und was genau hast Du geändert?

    Denn rein von der Optik sehe ich keinen Unterschied

    und auch das Überlaufproblem besteht noch.

    Wobei, wenn ich genau hinschaue, es ist nicht mehr gar so krass.

    Hmm, stimmt leider. :/

    Ich denke ich lass es jetzt lieber bleiben; da sind zu viele Anpassungen in Firefox involviert in dem Bereich, mit dem Overflow und angehefteten Tabs, das krieg ich einfach nicht sauber hin. ;( ;)

  • Tabform

    • Horstmann
    • 10. November 2023 um 15:56
    Zitat von Mira_Belle

    Na da bin ich aber mal gespannt. 8o Kann es kaum erwarten.

    Und betrifft es wieder den kompletten Code,

    oder nur einen bestimmten Teil, bestimmte Selektoren?

    Ich habe am Rest natürlich auch wieder rumgefummelt ;) , aber generell ist der Code in der Basis der selbe.

    Du solltest eigentlich - ohne irgendwo unten reinzugehen - alle Farben im oberen General adjustments Block einstellen können.

    Die unter Tableisten Kante hab ich mal rausgeworfen und mit was Anderem ersetzt, es geht ja nur um Abrenzung, oder?

    Aber das kann man aufbauen wie man will, da gibt es zig Möglichkeiten.

    Hier ist mein momentaner Testcode; den hab ich nur kurz in Fx119 getestet, ist immer ein Akt das System anzuwerfen, aber sah ok aus.

    Die Grafik ist hier auch wieder eingebunden.

    CSS
    /*** Curved tabs beta #3 ***/
    
    
    /*** General adjustments ***/
    
    :root {
    
    /* Tabs bar height adjust */
        /*--tab-block-margin: 4px !important;*/
        --tab-block-margin: 2px !important;
        --tab-min-height: 36px !important;
    
    /* Edges without Svg /  Radius */
        /*--ug-radius: 20px;*/
        --ug-radius: 19px;
    
    /* Edges (borders, outlines) colors */
    
    /* Edges not selected */
        --ug-color-border: hsla(0, 0%, 33%, 0.5);                  /* dunkelgrau unselected Kante Tab 83 */
        --ug-stroke: var(--ug-color-border);                                                   /* unselected Kante Svg */
        --ug-kante_hova: hsla(0, 0%, 43%, 0.65);        /* mittelgrau unselected alle Kanten hover 93 */
    
    /* Edges selected , multiselected */
        --ug-color-border_select: hsla(0, 0%, 43%, 0.75);        /* mittelgrau hell+ selected Kante Tab */
        --ug-stroke_select:  var(--ug-color-border_select);                                /* selected Kante Svg */
        --ug-kante_hova_select: hsla(0, 0%, 49%, 0.8);  /* mittelgrau hell++ multiselected alle Kanten hover 100 */
    
    
    /* Tabs backgrounds:  */
    
        --ug-color1: hsla(0, 0%, 83%, 0.25);                                               /* hellgrau basis, unselected */
        --ug-color2: hsla(35, 80%, 60%, 0.25);                                                    /* zart orange selected */
        --ug-color2-multi: hsla(35, 80%, 40%, 0.25);                        /*zart orange dunkel+ multiselected */
        --ug-color_multi_hova: hsla(35, 70%, 40%, 0.35);   /* zart orange dunkel++ multiselected hover */
        --ug-color_hova: hsla(0, 0%, 50%, 0.25);                                  /* mittelgrau#2 unselected hover */
    
    /* Tab bar unten, border bottom color */
        --ug-color3: hsla(0, 0%, 43%, 1);                   /* dunkelgrau nicht transparent, Kante zu Website  */
    
        /*--tabs-navbar-shadow-size: 0 !important;*/
    }
    
    /* Tab bar unten, border bottom mit NavToolbox */
    /*
    #TabsToolbar {
        border-image: linear-gradient(to top, 
            var(--ug-color-border) 1px, transparent 1px) 1 / 0 0 1px 0 !important;
    }
    */
    #navigator-toolbox {
        /*border-bottom: 1px solid var(--ug-color-border) !important;*/
        border-bottom: none !important;
        box-shadow: inset 0px -1px var(--ug-color3) !important;
    }
    
    
    /*** General adjustments end ***/
    
    
    /* 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: 3px !important;
    }
    .tabbrowser-tab:not([pinned]) .tab-content {
        padding-inline: 12px 10px !important;
    }
    
    .tab-label, .tab-close-button {
        text-shadow: none  !important;
    }
    
    .tabbrowser-tab:not([pinned]) .tab-close-button {
        border-radius: 50% !important;
        display: 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;
    }
    
    /* New Tab (+) button, not overflow (+) button */
    
    /* Button rund, icon position adjusted */
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button .toolbarbutton-icon {
        border-radius: 50% !important;
        --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 3px) !important;
        padding-block: 6px 8px !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;
    }
    
    
                                                               /*** Tabs base ***/
    
    /* tabs connected bottom */
    
    .tab-background {
        margin-block: calc(2 * var(--tab-block-margin)) 0 !important;
    }
    
    
    /*** Tabs Radien, borders, corners, tab shapes order , inline borders only where no custom corners ***/
    
    /*   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], :last-of-type, [pinned]) .tab-background {
        border-radius: var(--ug-radius) var(--ug-radius) 0 0 !important;
    }
    /* Tab selected no inline border */
    .tabbrowser-tab:is([visuallyselected], :last-of-type):not([pinned]) .tab-background {
        border-inline: none !important;
    }
    
    /* Tab after selected tab completely round, no corners */
    .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;
    }
    
    /* Last tab dual corners, unless it comes after selected tab */
    .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  ***/
    
    /**  In about:config set svg.context-properties.content.enabled to true  **/
    
    
    /* 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);
        /*--ug-corner-image: url(icons/tab_corner_ug.svg) !important;*/
        --ug-corner-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128' viewBox='0 0 32 32'%3E%3Cpath d='M0 33 L3 32.5 A16 16 0 0 0 15.5 16 L 16 16 L 16 33 Z' fill='context-fill'/%3E%3Cpath d='M3 32.5 A16 16 0 0 0 15.5 16' fill='rgba(155,122,0,0)' stroke='context-stroke' stroke-width='1px'/%3E%3Cpath d='M0 16 L16 16 A15.5 15.5 0 0 1 32 0 L 32 0 L 32 16 Z' fill='rgba(155,122,0,0)'/%3E%3Cpath d='M15.5 16 A18.5 18 0 0 1 35.5 -0.5' fill='transparent' stroke='context-stroke' stroke-width='1px' /%3E%3C/svg%3E%0A");
    }
    
    .tabbrowser-tab .tab-background::before, 
    .tabbrowser-tab .tab-background::after {
        content: "";
        position: absolute;
        -moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
        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;
        /*outline: 1px solid hsla(35, 80%, 50%, 0.75) !important;
        outline-offset: -1px !important;*/
    }
    
    /*  left  */
    .tabbrowser-tab .tab-background::before {
        left: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
    }
    
    /*  right  */
    .tabbrowser-tab[visuallyselected] .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
        transform: scaleX(-1) !important;
    }
    
    .tabbrowser-tab:last-of-type .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
        transform: scaleX(-1) !important;
    }
    
    /*  pinned no corners  */
    .tabbrowser-tab[pinned] .tab-background::before, 
    .tabbrowser-tab[pinned] .tab-background::after {
        display: none !important;
    }
    
    
    /*  TEST margins etc overflow  */
    
    /*  TEST outlines  */
    .tabbrowser-tab:not([pinned]) {
        /*background-color: hsla(135, 80%, 50%, 0.5) !important;
        outline: 1px solid hsla(135, 80%, 50%, 0.5) !important;
        outline-offset: -1px !important;*/
    }
    
                                                      /*  TEST base -> 36px/2 + 2px padding Abstand    */
    
    #tabbrowser-tabs {
        --ug-tab_Pad: calc(2px + var(--ug-corner-size) / 2);
        --ug-tab_Marge: calc(0px - var(--ug-corner-size) / 2);
        --tab-min-width:  120px !important;
    }
                                                                                                                   /* basis TEST */
    
    .tabbrowser-tab:not([pinned]) {
        overflow: visible !important;
        z-index: 3 !important;
        padding-inline: var(--ug-tab_Pad) !important;
        margin-inline: var(--ug-tab_Marge) !important;
    }
    
                                                      /* Tab after selected tab completely round, no corners TEST */
    
    .tabbrowser-tab:is([visuallyselected]):not([pinned]) + .tabbrowser-tab:not([visuallyselected], :last-of-type) {
        z-index: 1 !important;
    }
    
                                                                                                                    /* Tab selected  TEST */
    .tabbrowser-tab:not([pinned]):is([visuallyselected], , :last-of-type) {
        z-index: 2 !important;
    }
    
                                           /* Last tab dual corners, unless it comes after selected tab TEST OFF */
    /*
    .tabbrowser-tab[visuallyselected]:not([pinned]) + .tabbrowser-tab:not([visuallyselected]):last-of-type {
    }
    */
    
                                                     /* divers TEST */
    
    /* Space for corner left/right - first/last tab, overflow bug fix ? */
    /* Test #4 */
    
    /*#tabbrowser-tabs:not([overflow])*/ .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) {
        margin-inline-start: 0px !important;
    }
    
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button {
        margin-block: 1px -1px !important;
        /*padding-inline: 0px !important;*/
    }
    
    /* Position, closer to last tab */
    .tabbrowser-tab:not([pinned]) + #tabbrowser-arrowscrollbox-periphery {
        /*margin-inline: -16px !important;*/
        z-index: 5 !important;
    }
    Alles anzeigen
  • Blauer Rahmen um Tabbar oder Titlebar

    • Horstmann
    • 10. November 2023 um 14:22
    Zitat von Nikolaus2001at

    Hallo zusammen,

    nachdem ich gestern abend in Bastellaune war hab ich mir mit unten stehenden css Code einen blauen Rahmen um meine Tabbar oder Titlebar gebaut.

    CSS
    /* Tab-Bar: Blauer Rahmen  */
        #TabsToolbar .toolbarbutton-1 {
        border-top: 2px solid #00bbff !important;
        border-bottom: 2px solid #00bbff !important; 
    }  
    
    /* Titlebar: Rahmen */
    .titlebar-spacer {
        border-top: 2px solid #00bbff !important;
        border-bottom: 2px solid #00bbff !important; 
    } 
    
    /* Titlebar: Rahmen */
    .titlebar-button {
        border-top: 2px solid #00bbff !important;
        border-bottom: 2px solid #00bbff !important; 
    } 
    
    /* Titlebar: Rahmen */
    scrollbox {
        border-top: 2px solid #00bbff !important;
        border-bottom: 2px solid #00bbff !important; 
        border-left: 2px solid #00bbff !important;
    } 
    
    
    /* Pfeil alle Tabs auflisten entfernen */
    #alltabs-button{
    display:none}
    } 
    
    /* Schliessen Button: Rahmen rechts */
    .titlebar-close {
        border-right: 2px solid #00bbff !important;
    } 
    Alles anzeigen

    Warum so kompliziert; der Rahmen soll jeweils einmal rund um die Tableiste und die Navbar gehen, korrekt?

    Border würde ich dazu eher nicht benutzen, weil das ins Layout eingreift (v.a. in der Navbar, sieht man gut an deinem Screenshot) und Grössen verändert; vielleicht eher sowas?

    CSS
     /* Tab-Bar, Navbar: Blauer Rahmen  */
    
    #TabsToolbar, #nav-bar {
        /*border: 2px solid #00bbff !important;*/
        border-image:  linear-gradient(#00bbff, #00bbff) 1 / 2px !important;
    } 
  • Tabform

    • Horstmann
    • 10. November 2023 um 14:03
    Zitat von Mira_Belle

    Hi, ein kleines Résumé!

    Ich hatte mir gestern Abend kurz die Zeit genommen und ALLE Variationen erneut durchprobiert!

    Mh, :/ , wie sage ich es jetzt?

    Also, ich bin der Meinung, der von mir modifizierte Code, basierend auf den aus Beitrag #56,

    glaube ich, am besten funktioniert.

    (Mit meinen Modifikationen #93) + (Modifikation #99)

    Zwar ist da der "Bug" mit dem "Überlauf" vorhanden, aber es braucht min. zwei Dutzend Tabs,

    bis der Overflow überhaupt einsetzt.

    Dann sind die ganzen Tabs eh schon auf Erbsengröße geschrumpft. :D

    Ich habe den Beitrag und die Erklärung vom Chef gelesen, verstanden und kann es nun,

    anhand meiner Beobachtungen bestätigen.

    Die angehängten Vektorgrafiken werden von der Overflow-Funktion nicht berücksichtigt,

    daher sieht es so aus, als ob der Tab abgeschnitten wird.

    Was die anderen Versionen angeht, so haben diese alle irgendwelche "Ungereimtheiten", die ich nicht so schön finde.

    Mal verändert sich die Tabbreite, wenn man einen Tab aktiviert, mal ist es was anderes.

    (Da war noch etwas, komme nur gerade nicht drauf, sorry)

    Das mit dem "Überlauf" scheint wohl eine ganz besonders harte Nuss zu sein!

    Alles anzeigen

    Auf den Punkt getroffen! :)

    Ich habe eine Lösung für den Überlauf, aber dann verändern sich die Breiten je nach gewählter/nicht gewählter etc. Tab.

    Dafür hab ich im Prinzip auch eine Lösung - aber die hat noch einen massiven Bug... :/

  • Tabform

    • Horstmann
    • 9. November 2023 um 22:58
    Zitat von Mitleser
    Zitat von Horstmann

    Wenn du einen direkt mit dem Code anwendbaren, und für den Code funktionierenden Vorschlag für eine Lösung hast

    Nö, habe ich nicht. Damit habe und werde ich mich auch nicht beschäftigen, 'form follows funktion' ist bei diesem Thema auch nicht Programm, sondern eher 'mir ist gerade langweilig'. Entschuldigung für den vorherigen Beitrag.

    Also mal kurz vorbeigeschaut um über unser nutzloses Getue die Nase zu rümpfen, hmm? 8)

    Vielleicht nicht ganz im Geiste dieses Unter-Forums, aber was weiss ich schon. ;)

    Zitat von Mira_Belle

    Apropos, Du hast zwar --ug-color3 definiert, aber diese "Farbe" kommt gar nicht zur Anwendung!

    Die soll wohl für die Linie zwischen den Tabs und dem Fensterinhalt sein, richtig?

    Richtig; einiges an Einträgen wird nicht benutzt, ist aber noch da als eventuelle Option und weil es halt immer noch ein Test ist, kein fertiger Code.

    Sorry dass es so kompliziert ist und sich dauernd ändert, aber es hängt halt so vieles zusammen und voneinander ab... ?(

    Wenn es denn je fertig wird... ;)

    Der Overflow ist die ultimative Hürde; das nervt wirklich.

    Ich bin momentan dabei die Tabs komplett neu aufzubauen, mit den Rundungen innerhalb vom Tab selber, aber erst mal schauen ob was geht damit.

    Der letzte Code sollte eigentlich fast funktionieren im Overflow, mit wenigen Ausnahmen, aber ist halt wirklich übles Gehacke; das muss besser gehen. :!: ;)

  • Tabform

    • Horstmann
    • 9. November 2023 um 20:58
    Zitat von Mitleser

    Mir ist aufgefallen. dass du nicht:

    #tabbrowser-tabs[haspinnedtabs]

    #tabbrowser-tabs[positionpinnedtabs]

    #tabbrowser-arrowscrollbox[overflowing]

    nutzt.

    Ein Beisp. wäre:

    CSS
    #tabbrowser-tabs[haspinnedtabs] > #tabbrowser-arrowscrollbox[overflowing] > .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) { 
        margin-inline-start: .... !important;
    }
    Alles anzeigen

    Danke, hab ich aber alles schon (zumindest kurz) probiert, leider ohne Erfolg.

    Wenn du einen direkt mit dem Code anwendbaren, und für den Code funktionierenden Vorschlag für eine Lösung hast - nur zu! :thumbup: :)

  • Tabform

    • Horstmann
    • 9. November 2023 um 17:19
    Zitat von 2002Andreas
    Zitat von Horstmann

    auf Windows funktioniert

    Sieht hier so aus:

    Danke für den Test, scheint zu klappen. :)

    An die erste Tab muss ich wohl nochmal ran...

    Jetzt hoffentlich korrigiert im Code oben.

    ;)

  • Tabform

    • Horstmann
    • 9. November 2023 um 16:51
    Zitat von Mira_Belle

    Das ist in allen Versionen des CSS so, schon ab der Ersten.

    Daran habe ich mich auch schon versucht, ohne bisher eine Lösung dafür zu haben.

    Ich hab mal beim Chef ;) nachgefragt, der freundlicherweise prompt geantwortet hat.

    Das Problem ist tatsächlich dass die Ecken eigentlich innerhalb der Tabs an sich sein müssten, nicht aussen angehängt.

    Hatte ich auch schon probiert, aber hatte nicht geklappt, muss ich evtl. nochmal ran.

    Ich weiss nicht ob der eingebaute svg code, den ich für diesen schnellen Test benutzt habe, auf Windows funktioniert, aber hier wäre ein ganz grober erster Versuch nur mit Abständen.

    Die neuen Anpassungen sind zum Grossteil ganz unten.

    CSS
    /*** Curved tabs beta #2B ***/
    
    
    /*** General adjustments ***/
    
    :root {
    
    /* Tabs bar height adjust */
        /*--tab-block-margin: 4px !important;*/
        --tab-block-margin: 2px !important;
        --tab-min-height: 36px !important;
    
    /* Edges without Svg /  Radius */
        --ug-radius: 20px;
    
    /* Edges (borders, outlines) colors */
    
    /* Edges not selected */
        --ug-color-border: hsla(0, 0%, 33%, 0.5);                                    /* unselected Kante Tab 83 */
        --ug-stroke: var(--ug-color-border);                                             /* unselected Kante Svg */
        --ug-kante_hova: hsla(0, 0%, 43%, 0.65);                        /* unselected alle Kanten hover 93 */
    
    /* Edges selected , multiselected */
        --ug-color-border_select: hsla(0, 0%, 43%, 0.75);                            /* selected Kante Tab */
        --ug-stroke_select:  var(--ug-color-border_select);                           /* selected Kante Svg */
        --ug-kante_hova_select: hsla(0, 0%, 49%, 0.8);           /* multiselected alle Kanten hover 100 */
    
    
    /* Tabs backgrounds:  */
    
        --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%, 50%, 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 bar border bottom color */
        --ug-color3: hsla(0, 0%, 43%, 1);
    
        /*--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;
    }
    
    /*** General adjustments end ***/
    
    
    /* Tab bar border bottom */
    
    #TabsToolbar {
        border-image: linear-gradient(to top, 
            var(--ug-color-border) 1px, transparent 1px) 1 / 0 0 1px 0 !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: 3px !important;
    }
    .tabbrowser-tab:not([pinned]) .tab-content {
        padding-inline: 12px 10px !important;
    }
    
    .tab-label, .tab-close-button {
        text-shadow: none  !important;
    }
    
    .tabbrowser-tab:not([pinned]) .tab-close-button {
        border-radius: 50% !important;
        display: 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;
    }
    
    /* New Tab (+) button, not overflow (+) button */
    
    /* Position, closer to last tab */
    
    .tabbrowser-tab:not([pinned]) + #tabbrowser-arrowscrollbox-periphery {
        /*margin-inline: -11px !important;*/
        margin-left: 8px !important;
        z-index: 2 !important;
    }
    
    
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button {
        margin-block: 1px -1px !important;
        padding-inline: 0px !important;
    }
    
    /* Button rund, icon position adjusted */
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button .toolbarbutton-icon {
        border-radius: 50% !important;
        --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 3px) !important;
        padding-block: 6px 8px !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 2px 1px var(--ug-color-border) !important;*/
    }
    
    
                                                               /*** Tabs base ***/
    
    /* tabs connected bottom */
    
    .tab-background {
        margin-block: calc(2 * var(--tab-block-margin)) 0 !important;
    }
    
    /* Space for corner left/right - first/last tab, overflow bug fix ? */
    /* Test #3 */
    
    /*
    .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;
    }
    */
    
    .tabbrowser-tab[first-visible-unpinned-tab] {
        margin-inline-start: 0px !important;
    }
    
    
    
    /*** Tabs Radien, borders, corners, tab shapes order , inline borders only where no custom corners ***/
    
    /*   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 no inline border */
    .tabbrowser-tab[visuallyselected]:not([pinned]) .tab-background {
        border-inline: none !important;
    }
    
    /* Tab after selected tab completely round, no corners */
    .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;
    }
    
    /* Last tab dual corners, unless it comes after 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  ***/
    
    /**  In about:config set svg.context-properties.content.enabled to true  **/
    
    
    /* 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);
        /*--ug-corner-image: url(icons/tab_corner_ug.svg) !important;*/
        --ug-corner-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128' viewBox='0 0 32 32'%3E%3Cpath d='M0 33 L3 32.5 A16 16 0 0 0 15.5 16 L 16 16 L 16 33 Z' fill='context-fill'/%3E%3Cpath d='M3 32.5 A16 16 0 0 0 15.5 16' fill='rgba(155,122,0,0)' stroke='context-stroke' stroke-width='1px'/%3E%3Cpath d='M0 16 L16 16 A15.5 15.5 0 0 1 32 0 L 32 0 L 32 16 Z' fill='rgba(155,122,0,0)'/%3E%3Cpath d='M15.5 16 A18.5 18 0 0 1 35.5 -0.5' fill='transparent' stroke='context-stroke' stroke-width='1px' /%3E%3C/svg%3E%0A");
    }
    
    .tabbrowser-tab .tab-background::before, 
    .tabbrowser-tab .tab-background::after {
        content: "";
        position: absolute;
        -moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
        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 .tab-background::before {
        left: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
    }
    
    /*  right  */
    .tabbrowser-tab[visuallyselected] .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
        transform: scaleX(-1) !important;
    }
    
    .tabbrowser-tab:last-of-type .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: var(--ug-corner-image) !important;
        transform: scaleX(-1) !important;
    }
    
    .tabbrowser-tab[pinned] .tab-background::before, 
    .tabbrowser-tab[pinned] .tab-background::after {
        display: none !important;
    }
    
    
    
    
    
    
    /*   margins test   */
    
    .tabbrowser-tab .tab-background {
        border-radius: var(--ug-radius) var(--ug-radius) var(--ug-radius)  0 !important;
    }
    
                                                                                                                   /* basis TEST */
    .tabbrowser-tab:not([pinned]) {
        padding-left: 20px !important;
    }
    
                                                                                                           /* Tab selected  TEST */
    
    .tabbrowser-tab[visuallyselected]:not([pinned]) {
        padding-inline: 20px !important;
    }
    
    
                                                      /* Tab after selected tab completely round, no corners TEST */
    
    .tabbrowser-tab:is([visuallyselected]):not([pinned]) + .tabbrowser-tab:not([visuallyselected]) {
        margin-inline: -36px -18px !important;
    }
    
    /*
    .tabbrowser-tab:not([visuallyselected]) + .tabbrowser-tab:is([visuallyselected]) {
        margin-left: -18px !important;
    }
    */
    
    /*
    .tabbrowser-tab:not([visuallyselected], [pinned]) + .tabbrowser-tab:not([visuallyselected]) {
        margin-right: -18px !important;
    }
    */
    
    .tabbrowser-tab:not([visuallyselected], [pinned]) {
        margin-right: -18px !important;
    }
    
                                                     /* Last tab dual corners, unless it comes after selected tab TEST */
    
    .tabbrowser-tab:not([pinned]):last-of-type {
        padding-inline: 20px !important;
    }
    
    .tabbrowser-tab:is([visuallyselected]):not([pinned]) + .tabbrowser-tab:not([visuallyselected]):last-of-type {
        padding-inline: 2px 20px !important;
        margin-left: -18px !important;
    }
    
    #tabbrowser-tabs:not([overflow]) .tabbrowser-tab:is([visuallyselected]):not([pinned]):last-of-type {
        padding-right: 0px !important;
    }
    Alles anzeigen
  • Tabform

    • Horstmann
    • 8. November 2023 um 23:14

    Danke an alle für die Mithilfe. :)

    Das Bessere ist ja des Guten Feind, also eine neue Version. ;)

    Ein paar Bugs beseitigt, aber ein Problem kann ich auf Teufel komm raus nicht in den Griff bekommen: wenn die Tabs überlaufen, werden die angesetzten Tab-Ecken abgeschnitten am Anfang und Ende des "Scrollfensters" mit Ausnahme des ersten und letzten Tabs, wenn diese nicht versteckt sind in Overflow.

    Diese beiden sind aber ja auch im Code schon mit Abstand nach aussen versehen.

    Alle anderen Tabs an den extremen Enden werden nicht komplett angezeigt.

    Ich habe jeden möglichen und unmöglichen Selektor und alle umgebenden Elemente probiert, um dieses "Fenster" im Overflow etwas breiter zu bekommen, bzw. die Tabs am Anfang und Ende anders abgeschnitten zu bekommen - nix hat funktioniert... :/

    Wenn dazu jemand eine Idee hätte, das wäre prima. :)

    Hier erstmal der mit Spannung erwartete ;) , zart aktualisierte Code mit den erwähnten Bug Korrekturen, Grafik wie gehabt.

    CSS
    /*** Curved tabs beta #2 ***/
    
    
    /*** 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%, 33%, 0.5);                                    /* unselected Kante Tab 83 */
        --ug-stroke: var(--ug-color-border);                                             /* unselected Kante Svg */
        --ug-kante_hova: hsla(0, 0%, 43%, 0.65);                        /* unselected alle Kanten hover 93 */
    
    /* Rand selected , multiselected */
        --ug-color-border_select: hsla(0, 0%, 43%, 0.75);                            /* selected Kante Tab */
        --ug-stroke_select:  var(--ug-color-border_select);                           /* selected Kante Svg */
        --ug-kante_hova_select: hsla(0, 0%, 49%, 0.8);           /* multiselected alle Kanten hover 100 */
    
    /*  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%, 50%, 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%, 43%, 1);
    
        /*--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 {
        border-image: linear-gradient(to top, 
            var(--ug-color-border) 1px, transparent 1px) 1 / 0 0 1px 0 !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: 3px !important;
    }
    .tabbrowser-tab:not([pinned]) .tab-content {
        padding-inline: 12px 10px !important;
    }
    
    
    .tab-label, .tab-close-button {
        text-shadow: none  !important;
    }
    
    .tabbrowser-tab:not([pinned]) .tab-close-button {
        border-radius: 50% !important;
        display: 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;
    }
    
    /* New Tab (+) button, not overflow (+) button */
    
    /* Position, closer to last tab */
    .tabbrowser-tab:not([pinned]) + #tabbrowser-arrowscrollbox-periphery {
        margin-inline: -11px !important;
        z-index: 2 !important;
    }
    
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button {
        margin-block: 1px -1px !important;
        padding-inline: 0px !important;
    }
    
    /* Button rund, Icon Position Höhe angepasst */
    #tabbrowser-arrowscrollbox-periphery #tabs-newtab-button .toolbarbutton-icon {
        border-radius: 50% !important;
        --toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2 - 3px) !important;
        padding-block: 6px 8px !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 2px 1px var(--ug-color-border) !important;*/
    }
    
    
                                                               /*** Tabs base ***/
    
    /* tabs connected bottom */
    
    .tab-background {
        margin-block: calc(2 * var(--tab-block-margin)) 0 !important;
    }
    
    /* Space for corner first/last tab, overflow bug fix */
    /* Test #3 */
    
    .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;
    }
    .tabbrowser-tab[first-visible-unpinned-tab] {
        margin-inline-start: 0px !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 .tab-background::before, 
    .tabbrowser-tab .tab-background::after {
        content: "";
        position: absolute;
        -moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
        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 .tab-background::before {
        left: calc(0px - var(--ug-corner-size) / 2);
        background-image: url(icons/tab_corner_ug.svg) !important;
    }
    
    /*  right  */
    
    .tabbrowser-tab[visuallyselected] .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: url(icons/tab_corner_ug.svg) !important;
        transform: scaleX(-1) !important;
    }
    
    .tabbrowser-tab: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;
    }
    
    .tabbrowser-tab[pinned] .tab-background::before, 
    .tabbrowser-tab[pinned] .tab-background::after {
        display: none !important;
    }
    Alles anzeigen

    tab_corner_ug.svg.zip

  • Tabform

    • Horstmann
    • 8. November 2023 um 15:45
    Zitat von Mira_Belle
    Zitat von Horstmann

    Was du nochmal schauen könntest, ist ob angeheftete Tab sauber aussehen oder plötzlich auch untere Ecken haben.

    Wie sollten angeheftete Tabs genau aussehen?

    So wie in den Bildern, die Du hier gezeigt hast?

    Wenn ja, dann sind sie so!

    Sind wie? ;)

    Die sollten keine unteren Ecken haben, sondern so wie hier aussehen:

  • Tabform

    • Horstmann
    • 8. November 2023 um 15:20
    Zitat von Mira_Belle

    Ich bin mal so frei!

    Funktioniert,

    wenn man den kleinen Fehler in Zeile 93 korrigiert.

    Ouuups; muss ich gleich mal korrigieren. ;)

    Danke! :)


    Zitat von 2002Andreas

    Na klar

    Prima, danke! :)

  • Tabform

    • Horstmann
    • 8. November 2023 um 15:17
    Zitat von Mira_Belle

    Ich habe in "meinem" Code einfach mal die Selektoren

    Zeile 185

    CSS
    .tabbrowser-tab:not([pinned]):last-of-type .tab-background::after,
    .tabbrowser-tab:is([visuallyselected], [pinned]) .tab-background::after

    gegen

    CSS
    .tabbrowser-tab[visuallyselected] .tab-background::after,
    .tabbrowser-tab:last-of-type .tab-background::after

    getauscht.

    Funktioniert :!:

    Aber, müsste es nicht .tabbrowser-tab:is([visuallyselected]) .tab-background::after heißen?

    Funktioniert auch.

    Alles anzeigen

    Ahh, danke für die Rückmeldung! :)

    Ich bin mir zu 99% sicher dass das Problem bei [pinned] liegt, das ist glaube ich in Fx119 anders eingebunden.

    .tabbrowser-tab:is([visuallyselected]) ist im Prinzip das gleiche wie .tabbrowser-tab[visuallyselected], nur mit höherer Priorität und eigentlich für andere Zwecke gedacht, die wir hier aber nicht brauchen.

    Was du nochmal schauen könntest, ist ob angeheftete Tab sauber aussehen oder plötzlich auch untere Ecken haben.

  • Tabform

    • Horstmann
    • 8. November 2023 um 15:07
    Zitat von 2002Andreas

    Ergibt hier:

    Vielen Dank für's Testen - dann fällt mir aber nichts mehr dazu ein. :/

    Die oben genannten Probleme habe ich alle gesehen in Fx119 nachdem es hier lief, und der letzte Code hat das auf meiner Seite repariert.

    Wenn jetzt der linke statt der rechte Bogen fehlt, dann bin ich ratlos.

    Oder es ist ein OS Ding? :/

    Wenn ich dich nochmal belästigen dürfte: ;)

    CSS
    /*** Curved tabs beta #1d5 ***/
    
    
    /*** 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%, 33%, 0.5);                                    /* unselected Kante Tab 83 */
        --ug-stroke: var(--ug-color-border);                                             /* unselected Kante Svg */
        --ug-kante_hova: hsla(0, 0%, 43%, 0.65);                        /* unselected alle Kanten hover 93 */
    
    /* Rand selected , multiselected */
        --ug-color-border_select: hsla(0, 0%, 43%, 0.75);                            /* selected Kante Tab */
        --ug-stroke_select:  var(--ug-color-border_select);                           /* selected Kante Svg */
        --ug-kante_hova_select: hsla(0, 0%, 49%, 0.8);           /* multiselected alle Kanten hover 100 */
    
    /*  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%, 50%, 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;
    }
    
    .tabbrowser-tab:not([pinned]) .tab-close-button {
        border-radius: 50% !important;
        display: 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-tab:not([pinned]) + #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 {
        -moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
        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 .tab-background::before, 
    .tabbrowser-tab .tab-background::after {
        content: "";
        position: absolute;
        -moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
        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 .tab-background::before {
        left: calc(0px - var(--ug-corner-size) / 2);
        background-image: url(icons/tab_corner_ug.svg) !important;
    }
    
    /*  right  */
    
    .tabbrowser-tab[visuallyselected] .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: url(icons/tab_corner_ug.svg) !important;
        transform: scaleX(-1) !important;
    }
    
    .tabbrowser-tab: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;
    }
    
    
    .tabbrowser-tab[pinned] .tab-background::before, 
    .tabbrowser-tab[pinned] .tab-background::after {
        display: none !important;
    }
    Alles anzeigen
  • Tabform

    • Horstmann
    • 8. November 2023 um 14:34

    Ich hätte noch einen anderen Vorschlag, ich glaube es braucht nur eine kleine Änderung; bitte kurz testen wenn's passt. :)

    Nachdem ich ein altes Laptop gehackt habe um Fx119 zum Laufen zu bekommen, scheint sowas halbwegs zu funktionieren.

    Das gehackte System läuft auf einer externen USB 2.0 Platte, daher läuft alles etwas zäh und die Anpassungen sind mangels Geduld vermutlich suboptimal. ;)

    Dateipfade wieder anpassen, Grafik wie zuvor, häng ich auch nochmal an; Randfarben hier jetzt für ein helles Theme eingestellt.

    svg.context-properties.content.enabled auf true setzen für die volle Funktion.

    CSS
    /*** Curved tabs beta #1d5 ***/
    
    
    /*** 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%, 33%, 0.5);                                    /* unselected Kante Tab 83 */
        --ug-stroke: var(--ug-color-border);                                             /* unselected Kante Svg */
        --ug-kante_hova: hsla(0, 0%, 43%, 0.65);                        /* unselected alle Kanten hover 93 */
    
    /* Rand selected , multiselected */
        --ug-color-border_select: hsla(0, 0%, 43%, 0.75);                            /* selected Kante Tab */
        --ug-stroke_select:  var(--ug-color-border_select);                           /* selected Kante Svg */
        --ug-kante_hova_select: hsla(0, 0%, 49%, 0.8);           /* multiselected alle Kanten hover 100 */
    
    /*  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%, 50%, 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;
    }
    
    .tabbrowser-tab:not([pinned]) .tab-close-button {
        border-radius: 50% !important;
        display: 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 {
        -moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
        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;
        -moz-context-properties: fill, fill-opacity, stroke, stroke-opacity !important;
        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[visuallyselected] .tab-background::after {
        right: calc(0px - var(--ug-corner-size) / 2);
        background-image: url(icons/tab_corner_ug.svg) !important;
        transform: scaleX(-1) !important;
    }
    
    .tabbrowser-tab: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

    tab_corner_ug.svg.zip

  • Tabform

    • Horstmann
    • 8. November 2023 um 06:28
    Zitat von Sören Hentzschel

    Ich denke nicht. Der Grund, wieso es diese Option gibt und diese standardmäßig auf false steht, ist der, dass diese Funktionalität kein Teil eines Webstandards ist und daher nicht für Websites zur Verfügung stehen soll. Für den chrome-Prozess und damit auch für Aufrufe via chrome:// oder resource:// steht die Funktionalität immer zur Verfügung, unabhängig von dieser Option.

    Danke! :)

Unterstütze uns!

Jährlich (2026)

0 %

0% (0,00 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon