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

Beiträge von Horstmann

  • Unterschiedliche Versionen des Skriptes "Mehrzeilige Tableiste"

    • Horstmann
    • 4. Juni 2025 um 21:58

    Mal ein kleines Beispiel, ich habe da ja selber ein kleines Script am Laufen, das kein Ende nimmt... ;)
    Nur um sicherzustellen dass wir wissen worüber wir hier reden.

    Hier ist das Ausgangsscript, weiss nicht ob das aktuell noch funktioniert, hat aber schlanke 77 Zeilen (und integriertes CSS =O).
    Es macht im Prinzip das Gleiche wie das folgende Script, Icons und Zähler hinzufügen für Lesezeichen Popups, s. Anhang.
    Lässt sich auch anpassen - wenn man's kann.

    Hier hätten wir dann meine aktuellste Version, mit diversen einfach vom User wählbaren Optionen, unter anderem ist hier auch die Benutzung eigener Icons möglich, individuelle Farben für alle Bestandteile, etc..

    Fast 400 Zeilen, die man auf weit unter die Hälfte runterkochen könnte, wenn man alle Optionen fest auf je eine Variante einstellen würde.
    Das CSS ist als räumlich separierter Block enthalten, das komplette CSS könnte aber herausgenommen, und als CSS Datei via userChrome.css importiert werden.
    Die einzige direkte Verbindung zw. JS und CSS im Script ist via der JS Variablen in Zeile 23-25, und den korrespondierenden Aliasen in Zeile 150/151 - ebenfalls leicht in externes CSS einzubinden, sogar einfacher.
    (Ok, evtl. die Klammern, aber lassen wir die mal.)

    Was sind die Kritikpunkte hier, in Bezug auf die bestehende Diskussion?
    (PS: Testcode, kommt aber bald ;))

    JavaScript
    //bmcount.uc.js, RC_5
    //Anfang Juni 2025
    //Zeigt Anzahl der Lesezeichenordner und Links an in Lesezeichenpopups
    //basiert auf Script von BrokenHeart =>
    //https://www.camp-firefox.de/forum/thema/136572-nur-die-anzeige-der-ordner-lesezeichenanzahl-in-einer-anderen-farbe-darstellen/?postID=1269879#post1269879
    //Release Candidate 5 =>
    //https://
    //JS Hilfe von Mira_Belle
    
    (function() {
    
        if (!window.gBrowser)
            return;
    
        setTimeout(function() {
            setFunction();
        },50);
    
        //Einstellungen Javascript =>
    
        //Eigenes Icon erwartet in Profilordner/chrome/icons, icons Ordner falls noetig erstellen
        //Eigene Icons eintragen, falls vorhanden
        let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
        let icon1 = 'YourFolderIcon.svg';        //  Custom  Folder Icon
        let icon2 = 'YourLinkIcon.svg';          //  Custom  Link Icon
    
        //Variablen zur Auswahl der Icons; kein Auto Fallback falls eigenes Icon nicht vorhanden
        let icon_folder = 1    // Ordner: 0 Firefox Fallback Icon / 1 eigenes Icon
        let icon_link = 1      // Links: 0 Firefox Fallback Icon / 1 eigenes Icon
    
        //Variablen zur Auswahl der Klammern
        let bracket = 0;       //  0 keine Klammern, 1 runde Klammern, 2 eckige Klammern
        //Variablen zur Auswahl der Reihenfolge
        let order = 0;         //  0 Icons links Ziffern rechts / 1 Ziffern links Icons rechts
        //Variablen zur Auswahl der Farben
        let bm_colors = 0;     //  0 Standardfarben, 1 eigene Farben benutzen
    
        //Variablen zur Auswahl der Trennlinie
        // 0 ohne Trennlinie
        // 1 ohne Trennlinie + Zaehler #1 = 0 + Icon #2 wird versteckt
        // 2 mit Trennlinie
        // 3 mit Trennlinie nur bei Zaehler #1 > 0 + Zaehler #1 = 0 + Icon #2 wird versteckt
        let trenner = 2;
        // Trennlinie Inhalt, beliebiges Textzeichen
        let trennzeichen = '|';
    
        function setFunction() {
            const css =`
    
           /*
           Einstellungen CSS =>
           #A Zaehler (Counter) anpassen (nur falls noetig),
           #B Feinabstimmung allgemein,
           #C Feinabstimmung Zentrierung Trennlinie,
           #D eigene Farben anpassen
           */
    
           /*** User Einstellungen ***/
    
           /* A */
           /** Feste Breite der beiden Counter, abhaengig von Anzahl Ziffern, AUTO Anpassung für mit/ohne Klammern.
              Falls noetig => Werte erhoehen NUR bis Icons untereinander auf gleicher Hoehe sind **/
    
           /* Beispiel 2 Ziffern plus Klammern, Systemfont Mac */
           #bmContent:is(
           [data-value1^='['],
           [data-value1^='(']) {
              --bm_width_one: 2.1em;
              --bm_width_two: 2.1em;
              }
           /* Beispiel 2 Ziffern ohne Klammern, Systemfont Mac */
           #bmContent {
              --bm_width_one: 1.3em;
              --bm_width_two: 1.3em;
    
           /* B */
           /** Abstaende / Groessen fuer die Counter = Basisanpassungen **/
    
              /* Abstand mittig zwischen Counter #1 <=> Counter #2 / wird x2 benutzt */
              --bm_margin_mid: 8px;
    
              /* Groesse Icons = 16px Firefox Standard */
              --bm_icon_size: 16px;
    
              /* Abstand zwischen Icon und Ziffer */
              --bm_space: 4px;
              }
    
           /* C */
           /** Trennlinie **/
    
           /* Feinabstimmung Zentrierung Mitte / Standard = 0px */
           #bmContent.trennclass {
              --bm_divider: 0px;
              }
           /* Element Trennlinie */
           #trennID {
              display: flex;
              align-items: center;
              /*font-size: 12px;*/         /* Hoehe, optional */
              /*padding-bottom: 1px;*/     /* ausrichten vertikal, optional */
              color: var(--trenn_color, initial);
              }
    
           /* D */
           /* Farben Text / svg! Icons aendern , anpassen nach Belieben */
           /* HSL Farben: https://www.w3schools.com/css/css_colors_hsl.asp */
           /* Ordner Icon, Zahl / Links Icon, Zahl / Trennlinie */
           #bmContent.bm_my_colors {
              --folder_fill:  hsl(190, 60%, 20%, 1);
              --folder_color: hsl(190, 20%, 30%, 1);
              --link_fill:    hsl(35, 100%, 20%, 1);
              --link_color:   hsl(35, 60%, 30%, 1);
              --trenn_color:  hsl(290, 90%, 50%, 1);
              }
    
           /** Counter gesamt **/
           #bmContent {
                display: flex !important;
                margin-left: auto !important;         /* Gesamt rechtsbuendig */
                /*margin-right: -8px !important;*/    /* Abstand rechts zu Pfeil > ist evtl. OS abhaengig, optional */
                height: var(--bm_icon_size);          /* Layout passt sich Icon Groesse an */
                padding-left: 8px;                    /* min. Abstand links Gesamt für enge Popups */
    
           /* font Aenderungen , optional */
                /* font-family: Aenderungen nicht empfohlen => einheitlichen Standardfont behalten */
                /*font-size: 12px !important;*/       /* font-size */
                /*font-weight: 200 !important;*/      /* font-weight */
                }
    
           /*** User Einstellungen Ende ***/
    
    
           /*** Feste Werte ***/
    
           /** Reihenfolge Varianten Icons / Ziffern **/
           /* order 0: Icons links / Ziffern rechts */
           #bmContent {
                --bm_padding_inline: calc(var(--bm_icon_size) + var(--bm_space)) 0;
                --bm_bg_position: center left;
                }
           /* order 1: Ziffern links / Icons rechts */
           #bmContent.order_2 {
                --bm_padding_inline: 0 calc(var(--bm_icon_size) + var(--bm_space));
                --bm_bg_position: center right;
                }
           /** Icons Varianten **/
           /* Eigene Icons, falls Icons existieren im icons Ordner */
           #bmContent {
                --bm_icon_image_1: url("${ProfilePath}/${icon1}");
                --bm_icon_image_2: url("${ProfilePath}/${icon2}");
                }
           /* Firefox Icons Fallback */
           #bmContent:is(.icon_fallback_folder, icon_fallback_link) {
                --bm_icon_image_1: url("chrome://global/skin/icons/folder.svg");
                --bm_icon_image_2: url("chrome://browser/skin/bookmark-hollow.svg");
                }
           /** Trennlinie Extras **/
           /* Verstecken #1 automatisch bei Trennlinie 1/3 , beides = 0 */
           #bmContent:is(.trennclass_1, .trennclass_3)::before {
                display: none !important;
                }
           /* Verstecken Icon #2 , Trennlinie 1/3 , beides = 0 */
           #bmContent.Null_1.Null_2:is(.trennclass_1, .trennclass_3)::after {
                /*content: "X";*/
                background-image: linear-gradient(transparent, transparent);
                }
    
           /** Counters (Zaehler) **/
           /* Counter #1 Ordner */
           #bmContent::before {
                content: attr(data-value1);
                display: flex;
                min-width: fit-content;
                width: var(--bm_width_one);
                padding-inline: var(--bm_padding_inline);
                align-items: center;
                justify-content: flex-end;
                margin-right: var(--bm_margin_mid);
                background-image: var(--bm_icon_image_1);
                background-position: var(--bm_bg_position);
                background-repeat: no-repeat;
                background-size: var(--bm_icon_size);
                color: var(--folder_color, initial) !important;
                fill: var(--folder_fill, initial) !important;
                }
           /* Counter #2 Links */
           #bmContent::after {
                content: attr(data-value2);
                display: flex;
                min-width: fit-content;
                width: var(--bm_width_two);
                padding-inline: var(--bm_padding_inline);
                align-items: center;
                justify-content: flex-end;
                margin-left: calc(var(--bm_margin_mid) - var(--bm_divider, 0px));
                background-image: var(--bm_icon_image_2);
                background-position: var(--bm_bg_position);
                background-repeat: no-repeat;
                background-size: var(--bm_icon_size);
                color: var(--link_color, initial) !important;
                fill: var(--link_fill, initial) !important;
                }
    
           /*** Feste Werte Ende ***/
    
    
           /** Optionale Extras **/
    
           /* Text vertikal ausrichten */
           /*
           #bmContent::after,
           #bmContent::before {
                outline: 1px solid red;
                padding-top: 3px;
                }
           #bmContent {
                outline: 1px solid blue;
                outline-offset: 2px;
                }
                */
    
           /** Anpassungen bei Zahl = 0 **/
    
           /* Verblassen fuer #1 , #2 , Alles = 0 */
           #bmContent {
                --bm_opacity_zahl: 55%;
                --bm_opacity_icon: 50%;
                }
    
           #bmContent.Null_1:not(.Null_2)::before,
           #bmContent.Null_1.Null_2::before {
                -webkit-text-fill-color: color-mix(in srgb, var(--folder_color, currentColor) var(--bm_opacity_zahl), transparent) !important;
                fill: color-mix(in srgb, var(--folder_fill, currentColor) var(--bm_opacity_icon), transparent) !important;
                }
    
           #bmContent.Null_2:not(.Null_1)::after,
           #bmContent.Null_1.Null_2::after {
                -webkit-text-fill-color: color-mix(in srgb, var(--link_color, currentColor) var(--bm_opacity_zahl), transparent) !important;
                fill: color-mix(in srgb, var(--link_fill, currentColor) var(--bm_opacity_icon), transparent) !important;
                }
    
           #bmContent:is(.Null_1:not(.Null_2), .Null_1.Null_2) #trennID {
                -webkit-text-fill-color: color-mix(in srgb, var(--trenn_color, currentColor) var(--bm_opacity_zahl), transparent) !important;
                }
    
           /* Pfeil rechts > bei Beidem = 0 , optional */
           menu.bookmark-item.bm_chevron_00 > .menu-right,
           menu.bookmark-item.bm_chevron_00::after {
                fill: hsl(30, 100%, 50%, 1) !important;
                fill-opacity: 1 !important;
                }
    
           /** Pfeil rechts Farbe allgemein, optional **/
           /*menu.bookmark-item .menu-right,
           menu.bookmark-item::after {
                 fill: hsl(210, 100%, 50%, 1) !important;
                 fill-opacity: 1 !important;
                 }
                 */
    
    		`;
            const sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
            const uri = Services.io.newURI('data:text/css,' + encodeURIComponent(css));
            sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    
            let bmbMenu = document.getElementById('bookmarks-menu-button');
            let bookMenu = document.getElementById('bookmarksMenu');
            let persToolBar = document.getElementById('PersonalToolbar');
    
            if(bmbMenu)
                bmbMenu.addEventListener('popupshowing', onPopupShowing );
            if(bookMenu)-
                bookMenu.addEventListener('popupshowing', onPopupShowing );
            if(persToolBar)
                persToolBar.addEventListener('popupshowing', onPopupShowing );
        }
    
        function onPopupShowing(aEvent) {
            let popup = aEvent.originalTarget;
            for (let item of popup.children) {
                if (item.localName != 'menu' || item.id?.startsWith('history'))
                    continue;
                setTimeout(() => {
                  let itemPopup = item.menupopup;
    			        itemPopup.hidden = true;
    			        itemPopup.collapsed = true;
                  itemPopup.openPopup();
                  itemPopup.hidePopup();
                  let menuitemCount = 0;
                  let menuCount = 0;
                  for (let subitem of itemPopup.children) {
                    if (subitem.classList.contains('bookmark-item') && !subitem.disabled && !subitem.hidden) {
                      if (subitem.localName == 'menuitem') {
                        menuitemCount++;
                      } else if (subitem.localName == 'menu') {
                        menuCount++;
                      }
                    }
                  }
    			        itemPopup.hidden = false;
    			        itemPopup.collapsed = false;
    
                  //Eigenes Element für Zaehler
                  let bmCounta = item.childNodes[1];
                  bmCounta.innerHTML = '';
                  let bmVario = document.createElement("bmElement");
                  bmVario.id = "bmContent";
                  bmCounta.appendChild(bmVario);
    
                  //Zaehler Design Optionen =>  ohne/ mit: runde, eckige Klammern
                  if (bracket === 0) {
                      strCountOut1 = '' + menuCount + '';
                      strCountOut2 = '' + menuitemCount + '';
                      }
                  if (bracket === 1) {
                      strCountOut1 = '(' + menuCount + ')';
                      strCountOut2 = '(' + menuitemCount + ')';
                      }
                  if (bracket === 2) {
                      strCountOut1 = '[' + menuCount + ']';
                      strCountOut2 = '[' + menuitemCount + ']';
                      }
                  bmVario.setAttribute('data-value1', strCountOut1);
                  bmVario.setAttribute('data-value2', strCountOut2);
    
                  // Trennlinie
                  let trennelementVario = document.createElement("trennelement");
                  trennelementVario.id = "trennID";
    
                  if (trenner === 2 || trenner === 3 && menuCount !== 0) {
                       bmVario.appendChild(trennelementVario);
                       trennelementVario.textContent = trennzeichen;
                       bmVario.classList.add('trennclass');
                       }
                  if (trenner === 3 && menuCount === 0) {
                      bmVario.classList.add('trennclass_3');
                      }
                  if (trenner === 1 && menuCount === 0) {
                      bmVario.classList.add('trennclass_1');
                      }
    
                  // Extra class item/ ganzes menu fuer 00, #1 = 0, #2 = 0
                  if (menuCount === 0 && menuitemCount === 0) {
                       item.classList.add('bm_chevron_00');
                       } else {
                            item.classList.remove('bm_chevron_00');
                            }
                  if (menuCount === 0) {
                       bmVario.classList.add('Null_1');
                       }
                  if (menuitemCount === 0) {
                       bmVario.classList.add('Null_2');
                  }
    
                  // Reihenfolge Varianten Icons / Ziffern
                  if (order === 1) {
                      bmVario.classList.add('order_2');
                  }
    
                  // Icons Auswahl
                  if (icon_folder === 0) {
                      bmVario.classList.add('icon_fallback_folder');
                      }
                  if (icon_link === 0) {
                      bmVario.classList.add('icon_fallback_link');
                  }
    
                  // Farben Auswahl
                  if (bm_colors === 1) {
                      bmVario.classList.add('bm_my_colors');
                      }
    
                }, 100);
            }
        }
    })();
    Alles anzeigen


    Und nur für den Fall, dass wir alle Varianten mit externem CSS einbinden wollen, ohne JS Optionen zu benutzen, das geht.
    Ist auch sehr simpel.


    Zitat von Mira_Belle

    Es bleibt alles, wie es ist.
    Es wird von einigen Skripten dutzende individuell angepasste Versionen geben und wir werden daran nichts,
    aber auch gar nichts ändern.

    Amen, sister. :)

  • Unterschiedliche Versionen des Skriptes "Mehrzeilige Tableiste"

    • Horstmann
    • 4. Juni 2025 um 21:08

    Wir habe uns überschnitten, s. oben; letztlich sind wir in den meisten Punkten der gleichen Ansicht.

  • Unterschiedliche Versionen des Skriptes "Mehrzeilige Tableiste"

    • Horstmann
    • 4. Juni 2025 um 20:55
    Zitat von milupo

    Wenn sich aber die JavaScript-Datei um 80 Zeilen vergrößert und nur durch CSS kann das nicht normal sein. Wenn dann vielleicht noch mehr CSS drin steht als JavaScript-Code. Gegen kleine Codes habe ich nichts, z. B. um ein durch das Skript eingefügtes Symbol zu positionieren, z. B. mit background-position oder mit padding- oder margin-Abständen.

    Wenn man Styles braucht, dann braucht man Styles, und irgendwo müssen die herkommen.
    Es gibt bestimmt hier und da mal unnötige Schnörkel, aber die Regel ist das nicht, und als Bastler muss man auch lernen auf dem FX Code aufzubauen.

    Für einen Button - ich vermute davon redest du - hinzubiegen braucht man fast nix; für andere Geschichten kann es - und muss es - oft aufwendiger werden.
    Glaub's mir einfach; Vereinfachung ist mit der grösste Aufwand beim Code Basteln, und keiner will unnötigen Müll in seinem/ihrem Code haben, auch wenn's dir so vorkommt.


    Zitat von milupo

    Ich suche jetzt nicht für dich. Auch wenn es kein Skript gäbe, zu dem es eine CSS-Datei gibt, wäre es immer noch viel sinnvoller, viel CSS-Code in einer gesonderten CSS-Datei unterzubringen.

    Ich suche aber für dich.;)

    Selber habe ich schon öfters für separate CSS Dateien (und Icons) plädiert, und nach Lösungen gesucht, zB hier.
    Diese Diskussionen laufen idR ins Leere.

  • Unterschiedliche Versionen des Skriptes "Mehrzeilige Tableiste"

    • Horstmann
    • 4. Juni 2025 um 20:40
    Zitat von milupo

    Wirklich individuell ist CSS in einer eigenen Datei. Und es ist ja nun auch nicht neu, dass CSS-Dateien von Skript-Entwicklern mitgeliefert werden.

    Gib mir ein einziges Beispiel. :/

  • Unterschiedliche Versionen des Skriptes "Mehrzeilige Tableiste"

    • Horstmann
    • 4. Juni 2025 um 18:54
    Zitat von milupo

    Also bei manchen Helfern hier, habe ich den Eindruck, dass sie zwar ein Basis-Skript haben wollen, andererseits aber Unmengen von CSS-Codes ins Skript einbauen. Da kann dann m. E. nicht mehr von Basis die Rede sein.

    Einen Unterschied muss man aber machen zwischen einem reinen CSS Code Block innerhalb einem JS Script, und der Einbindung von Styles direkt via JS.

    Das erstere könnte man problemlos aus einem JS Script heraustrennen, je mehr vom zweiten Fall existiert, desto komplexer die Verschachtelung, und die Problembehebung bzw. Aktualisierung.

    Das Problem liegt auch nicht unbedingt an den "Helfern", sondern an vielen Usern, die nicht die Basiskenntnisse lernen wollen, und die ausdrücklich für sie maßgeschneiderte Codes erfragen und erwarten - und immer eine All-in-One Lösung.

    Wenn man vor dem Hintergrund einen Code bastelt, fragt man sich irgendwann ob man 20 Code Versionen für 20 Leute schreiben will, oder lieber ein paar Optionen einbaut, die leicht anzupassen, oder wenn nötig leicht erklärbar sind bei individuellen Wünschen.

    Darüber hinaus sollte man auch ein Grundwissen mitbringen - woran es mir selber mangelt - um die Komplexität eines Codes überhaupt beurteilen zu können; mehr Code kann oft auch der Effizienz, der Kompatibilität, und tatsächlich der Vereinfachung dienen.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • Horstmann
    • 3. Juni 2025 um 21:34
    Zitat von milupo

    Ich denke mal, an den Zeilen 26-28. Dort steht dreimal padding: padding-left bedeutet ein Innenabstand von links, padding-right, Innenabstand von rechts. Der von rechts ist größer. Da stoßen beide bei herunterladen zusammen. Außerdem gibt es da noch padding als Sammeleigenschaft: Das bedeutet es kommen noch einmal 3px für links bzw. rechts drauf. Dazu 3px für oben und unten.

    Ahem, nicht so ganz, glaub ich.
    padding-left und padding-right überschreiben hier padding für links/rechts, soweit ich weiss.
    In dem Fall sollte das:

    CSS
    			padding: 3px !important;
    			padding-left: 5px !important;
    			padding-right: 12px !important;

    das ergeben:

    CSS
                padding-top: 3px !important;
                padding-bottom: 3px !important;
    			padding-left: 5px !important;
    			padding-right: 12px !important;
  • BookmarkCount.uc.js funktioniert nach Update auf FF-Version 139.0 nicht mehr.

    • Horstmann
    • 3. Juni 2025 um 19:58
    Zitat von omar1979

    Yes.

    Jetzt ist alles wieder super

    Prima, freut mich zu hören! :)

  • Unterschiedliche Versionen des Skriptes "Mehrzeilige Tableiste"

    • Horstmann
    • 3. Juni 2025 um 19:56
    Zitat von Sören Hentzschel
    Zitat von lenny2

    Skriptes "Mehrzeilige Tableiste" enthält 800-1300 Zeilen

    CSS-Style "Mehrzeilige Tableiste" by Aris-t2 enthält 80 Zeilen

    Und was möchtest du damit aussagen? Die Anzahl von Code-Zeilen gilt schon ganz lange nicht mehr als relevante Metrik für Entwickler. Ich würde außerdem behaupten, es gibt auch entsprechende Unterschiede in Funktionalität und Optionen.

    Wenn sich mal jemand hinsetzen würde, um den aufgeblähten JS Code mit den reinen CSS Versionen von Aris oder MrOtherGuy zu vergleichen, und uU via JS zu ergänzen wo nötig, dann kann man sich über Funktionalität und Optionen unterhalten.

    (PS: Auf keinen Fall werde (oder könnte) ich dieser Jemand sein. ;))

  • BookmarkCount.uc.js funktioniert nach Update auf FF-Version 139.0 nicht mehr.

    • Horstmann
    • 3. Juni 2025 um 18:35

    Für anderen Pfeil bei hover, du bist schon nah dran.
    Könnte klappen ->

    Oben im JS:

    JavaScript
        //Eigenes Icon erwartet in Profilordner/chrome/icons, icons Ordner falls noetig erstellen
        //Eigene Icons eintragen, falls vorhanden
        let ProfilePath = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir, 'chrome', 'icons'));
        let icon1 = 'Folder.png';        //  Custom  Folder Icon
        let icon2 = 'Link.png';          //  Custom  Link Icon
        let iconPfeil = 'a_export.png';      //  Custom  Pfeil Icon
        let iconPfeil_2 = 'a_import1.png';      //  Custom  Pfeil Icon hover

    Im CSS:

    CSS
           /** Pfeil rechts eigenes Icon **/  
           menu.bookmark-item::after {
                 background-image:  url("${ProfilePath}/${iconPfeil}") !important;
                 fill-opacity: 1 !important;
                 margin-right: 10px !important;
                 }
           /** Pfeil rechts hover eigenes Icon **/  
           menu.bookmark-item:hover::after {
                 background-image:  url("${ProfilePath}/${iconPfeil_2}") !important;
                 }
  • BookmarkCount.uc.js funktioniert nach Update auf FF-Version 139.0 nicht mehr.

    • Horstmann
    • 3. Juni 2025 um 18:16
    Zitat von omar1979

    Horstmann

    es sieht soweit gut aus..

    nun möchte ich, beim Hover ein grünes Icon setzen..

    Zitat von Horstmann

    Klappt es denn jetzt?

    Noch nicht ganz :)

    Das mit dem Hover machen wir gleich, aber ganz kurz: klappt das mit dem Abstand denn, der Abstand vom Pfeil zur Kante rechts, mit dem margin_right ?

    Wäre immer super Screenshots zu sehen, um den Überblick zu behalten.

  • BookmarkCount.uc.js funktioniert nach Update auf FF-Version 139.0 nicht mehr.

    • Horstmann
    • 3. Juni 2025 um 17:48
    Zitat von omar1979

    und noch als entschuldigung:

    Hahaha, danke! ^^
    Aber eine Entschuldigung ist völlig unnötig. :)

    Klappt es denn jetzt?

  • BookmarkCount.uc.js funktioniert nach Update auf FF-Version 139.0 nicht mehr.

    • Horstmann
    • 3. Juni 2025 um 17:24
    Zitat von omar1979

    nun zu dem.. hab diese Zeilen in deinem Script wieder aktiviert und den Wert auf 5px gesetzt.

    CSS
           /** Pfeil rechts eigenes Icon 
           menu.bookmark-item::after { **/
    	   menu.bookmark-item::after {margin-right: 5px !important;}
                 background-image:  url("${ProfilePath}/${iconPfeil}") !important;
                 fill-opacity: 1 !important;
                 } 

    Nun sieht es leider schlimmer aus :)

    Auwaia, du hast den CSS Code zerschossen... ;)

    Das sollte eher so aussehen:

    CSS
           /** Pfeil rechts eigenes Icon 
    
    	   menu.bookmark-item::after {
                 background-image:  url("${ProfilePath}/${iconPfeil}") !important;
                 fill-opacity: 1 !important;
                 margin-right: 5px !important;
                 } 
  • BookmarkCount.uc.js funktioniert nach Update auf FF-Version 139.0 nicht mehr.

    • Horstmann
    • 3. Juni 2025 um 16:57
    Zitat von omar1979
    Zitat von Horstmann

    In meinem Teil des Scripts könntest du in Zeile 115 schauen, ob du evtl. ein margin-right oder padding-right mit reinpacken willst, um die Pfeile etwas von der rechten Kante weg zu bekommen, nur für diese Lesezeichen Popups; falls du in anderen Menüs oder über die ganze UI dafür Änderungen machen willst, wäre das eine andere Baustell

    Habe test-weise mal 30px mit margin-right und padding-right versucht, aber keine Änderung bemerkt.

    Das müsste wahrscheinlich ein !important; haben, z.B. menu.bookmark-item::after {margin-right: 30px !important;}.

    Ansonsten, -moz-image-region und .menu-right sind wohl raus, und bewirken gar nichts mehr.

  • BookmarkCount.uc.js funktioniert nach Update auf FF-Version 139.0 nicht mehr.

    • Horstmann
    • 3. Juni 2025 um 15:30
    Zitat von omar1979

    das Script ist wieder genau so wie ich es haben wollte.

    Prima, danke für die detaillierte Rückmeldung!:)

    Nur als Anmerkung generell, ich vermute du hast irgendwo ein CSS welches die Pfeile rechts regelt, in dem steht wohl sowas wie:

    JavaScript
    .menu-right {
        list-style-image: url("icons/a_import1.png") !important;
        }

    .menu-right gibt's nicht mehr, falls du weitere Anpassungen dafür machen möchtest oder in anderen Bereichen, es ist jetzt wohl generell menu:after und ein background-image.

    In meinem Teil des Scripts könntest du in Zeile 115 schauen, ob du evtl. ein margin-right oder padding-right mit reinpacken willst, um die Pfeile etwas von der rechten Kante weg zu bekommen, nur für diese Lesezeichen Popups; falls du in anderen Menüs oder über die ganze UI dafür Änderungen machen willst, wäre das eine andere Baustelle.

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 3. Juni 2025 um 12:13
    Zitat von omar1979

    ja damals hat aborix glaub ich das script speziell gemacht, dass man es ausserhalb von lesezeichen-symbolleiste auf andere zusatzleisten benützen kann. ist mir jetzt in den sinn gekommen. :)

    Um den Dreh rum.;)
    Ist so lange her, ich hab mich erst jetzt daran erinnert...

    Und, klappt es jetzt, mit dem angepassten Script von #485? :/
    Edit, Post hat sich überschnitten.

    Zitat von omar1979

    Mit deinem Script in #485 und dem von aborix zeigt es alles so, wie es soll.

    :thumbup:

  • Nur die Anzeige der Ordner/Lesezeichenanzahl in einer anderen Farbe darstellen

    • Horstmann
    • 3. Juni 2025 um 10:11
    Zitat von omar1979

    ok danke für das Script, aber es wird nur hier angezeigt

    Dafür hier leider nicht nicht:

    Ist das eine eigene Leiste?

    Ich wusste doch da war noch was, wir hatten dein Script ja extra dafür angepasst!
    Ausgehend von deinem Script, habe ich deine Leiste eingefügt in Zeile 257 und 262/263; probier bitte den neuen Code von oben #485 komplett statt dem alten.

  • Seitennavigation - Fly Out Menü

    • Horstmann
    • 2. Juni 2025 um 19:35
    Zitat von Mitleser

    Horstmann , die Idee deiner 'Toggle newtoolbar 7D' fand ich gut und habe diese jetzt endlich (nach einem Jahr) für mich umgesetzt und angepasst.

    Sieht prima aus auf meiner Seite, danke! :)

    Farben etc. müsste ich bei mir anpassen; ich selber benutze aber für die meisten Buttons ein etwas gestyltes Overflow Menü, und 2 die nur bei hover auftauchen; habe allerdings auch nicht viele in Buttons in Gebrauch.

  • Abstände zwischen einzelnen Lesezeichen im Menü

    • Horstmann
    • 2. Juni 2025 um 14:41
    Zitat von milupo

    Ich habe

    Zitat von Horstmann

    Da aber eine davon nicht funktioniert, sondern nur die für die stehenden Ordner, müssen wir wohl gespannt auf die Antwort vom OP warten.

    Ich habe hier das gelbe Ordner-Symbol im Lesezeichen-Menü der Menüleiste und in den Lesezeichen der Sidebar (nach der Korrektur der Zeilen 31 bis 35).

    Ah, die dritte Stelle ist die Bibliothek. Auch da ist das gelbe Ordnersymbol bei mir vorhanden.

    Sorry, hätte mich klarer ausdrücken sollen; der Originalcode in #3 zeigt nur den stehenden gelben Folder, ein Code für einen offenen, horizontalen gelben Folder ist vorhanden, aber nicht funktionell (doppelt in url eingefasst).
    Den Code für den stehenden gelben Folder gibt's mehrfach für verschiedene UI Bereiche, inkl. .bookmark-items, was man raffen könnte.

    Daher vermute ich der OP hat bisher nur den stehenden gelben Folder benutzt, und der andere Code war nur alter Restmüll.:/

  • Abstände zwischen einzelnen Lesezeichen im Menü

    • Horstmann
    • 2. Juni 2025 um 13:43
    Zitat von grisu2099

    Er hatte im ursprünglichen Code an zwei Stellen Angaben für die Ordner (und zwar verschiedene) - daher die Nachfrage...

    Aber nur eine davon funktioniert, und du hattest nur die nicht funktionierende Version in #17 benutzt. ;)


    Zitat von milupo

    Ja, aber er wird wohl beide beibehalten wollen, so wie sie in Beitrag #3 sind, insofern brauchen wir uns keine Gedanken darüber machen. Vor dem ersten Base64-Code steht aber:

    Da aber eine davon nicht funktioniert, sondern nur die für die stehenden Ordner, müssen wir wohl gespannt auf die Antwort vom OP warten.
    Testet hier jemand ab und zu mal die Codes ? ;)

  • Abstände zwischen einzelnen Lesezeichen im Menü

    • Horstmann
    • 2. Juni 2025 um 11:07
    Zitat von graubaer

    Ergänzende Anmerkung:

    Durch die Verwendung obiger userChrome.css von @grisu2099 ist die gelbe Farbe der Lesezeichenordner verschwunden.

    Wie lässt sich der Ursprungszustand mit Gelb wieder erreichen?

    Es wäre immer gut zu wissen, welchen Teil der UI du meinst, in diesem Fall die Sidebar?

    In Grisu's Code, probier das mal oben rein zu kopieren; ich habe auskommentiert was evtl. unnötig ist.
    Soweit ich das Chaos überblicken kann, macht Zeile #5 etc. in Grisu's Code nix, weil eine doppelte url Einbindung benutzt wird; dieser Codeblock stammt aber ursprünglich von dir.

    CSS
    /* Lesezeichen Sidebar - Ordnericon stehend gelb */
    
    @-moz-document /*url("chrome://browser/content/bookmarks/bookmarksPanel.xhtml"),*/
    
    url("chrome://browser/content/places/bookmarksSidebar.xhtml")
    
    /*url("chrome://browser/content/history/history-panel.xhtml")*/ {
    
    treechildren::-moz-tree-image(container) {
    
    list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAd5JREFUeNqMU79rFUEQ/vbuodFEEkzAImBpkUabFP4ldpaJhZXYm/RiZWsv/hkWFglBUyTIgyAIIfgIRjHv3r39MePM7N3LcbxAFvZ2b2bn22/mm3XMjF+HL3YW7q28YSIw8mBKoBihhhgCsoORot9d3/ywg3YowMXwNde/PzGnk2vn6PitrT+/PGeNaecg4+qNY3D43vy16A5wDDd4Aqg/ngmrjl/GoN0U5V1QquHQG3q+TPDVhVwyBffcmQGJmSVfyZk7R3SngI4JKfwDJ2+05zIg8gbiereTZRHhJ5KCMOwDFLjhoBTn2g0ghagfKeIYJDPFyibJVBtTREwq60SpYvh5++PpwatHsxSm9QRLSQpEVSd7/TYJUb49TX7gztpjjEffnoVw66+Ytovs14Yp7HaKmUXeX9rKUoMoLNW3srqI5fWn8JejrVkK0QcrkFLOgS39yoKUQe292WJ1guUHG8K2o8K00oO1BTvXoW4yasclUTgZYJY9aFNfAThX5CZRmczAV52oAPoupHhWRIUUAOoyUIlYVaAa/VbLbyiZUiyFbjQFNwiZQSGl4IDy9sO5Wrty0QLKhdZPxmgGcDo8ejn+c/6eiK9poz15Kw7Dr/vN/z6W7q++091/AQYA5mZ8GYJ9K0AAAAAASUVORK5CYII=')
    
    !important; }
    
    }
    Alles anzeigen

Unterstütze uns!

Jährlich (2025)

92,9 %

92,9% (604,17 von 650 EUR)

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