Firefox ๋ธŒ๋ผ์šฐ์ € ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ
  • ํ™•์žฅ ๊ธฐ๋Šฅ
  • ํ…Œ๋งˆ
    • Firefox์šฉ
    • ์‚ฌ์ „ ๋ฐ ์–ธ์–ด ํŒฉ
    • ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์ดํŠธ
    • Android ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ
๋กœ๊ทธ์ธ
One Group At A Time ๋ฏธ๋ฆฌ๋ณด๊ธฐ

One Group At A Time ์ œ์ž‘์ž: Pedason82

Klappt alle anderen Tab-Gruppen zu, sobald eine Gruppe aufgeklappt wird.

์‹คํ—˜์ ์‹คํ—˜์ 
Androidโ„ข์šฉ Firefox์—์„œ ์‚ฌ์šฉ ๊ฐ€๋ŠฅAndroidโ„ข์šฉ Firefox์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
0 (๋ฆฌ๋ทฐ 0๊ฐœ)0 (๋ฆฌ๋ทฐ 0๊ฐœ)
Firefox๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ํ™•์žฅ ๊ธฐ๋Šฅ์„ ๋ฐ›์œผ์„ธ์š”
ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ
Android์šฉ Firefox์—์„œ ์ด ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์—ด๋ ค๋ฉด QR ์ฝ”๋“œ๋ฅผ ์Šค์บ”ํ•˜์„ธ์š”

ํ™•์žฅ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ

์ •๋ณด
Dieses Addon soll dabei helfen zusammen mit einer userChrome.css, eine zweistufe Group/Tap Struktur zu erstellen, wie man sie zb. vom Vivaldi Browser kennt.

INFO: Tabs per Drag&Drop in einer zweizeiligen Tabstruktur zu verschieben funktioniert bei verwenden einer entsprechenden userChrome.css, ist aber leider nicht zu 100% zuverlรคssig

userChrome.css:

/ ============================================================
* Firefox - zweizeilige Tableiste im Vivaldi-Stil
* mit nativen Tab-Gruppen
* Basis: multi-row_tabs.css (MrOtherGuy, MPL 2.0)
* ============================================================
/

:root {
--uc-max-tab-rows: 2; / Notbremse, darueber wird gescrollt /
}

/ ---------- 1. Basis: Tableiste darf umbrechen ---------- /


min-height: unset !important;
padding-inline-start: 0 !important;
--uc-scrollbutton-display-model: none;
--uc-scrollbox-display-model: contents;
flex-wrap: wrap;
overflow-y: auto;
overflow-x: hidden;
max-height: calc((var(--tab-min-height) + 2 * var(--tab-block-margin, 4px)) * var(--uc-max-tab-rows));
scrollbar-width: thin;
}

@-moz-document url(chrome://browser/content/browser.xhtml) {
#scrollbutton-up ~ spacer,
#scrollbutton-up,
#scrollbutton-down { display: var(--uc-scrollbutton-display-model, initial); }

#pinned-tabs-container[orient="horizontal"],
#tabbrowser-arrowscrollbox[orient="horizontal"],
scrollbox[part][orient="horizontal"] > slot,
scrollbox[part="scrollbox"][orient="horizontal"] {
display: var(--uc-scrollbox-display-model, initial) !important;
}


}


.tabbrowser-tab::after { display: none !important; }

:where(#tabbrowser-tabs[orient="horizontal"]) .tabbrowser-tab[fadein]:not([pinned]) {
min-width: 110px !important;
flex-grow: 1 !important;
}

/ ---------- 2. Fensterknoepfe bleiben in Reihe 1 ---------- /
/ Sonst zentriert #TabsToolbar sie ueber alle Zeilen hinweg und sie
* wandern optisch nach unten, waehrend die Trefferflaeche oben bleibt.
/



align-self: flex-start !important;
height: calc(var(--tab-min-height) + 2 * var(--tab-block-margin, 4px)) !important;
}

/ ---------- 3. Nur die Tabs der Gruppe in Reihe 2 ---------- /
/ display:contents loest die Gruppen-Box auf. Erst dadurch werden Label
* und Tabs eigenstaendige Flex-Elemente und lassen sich getrennt
* platzieren. Nebenwirkung: auf der Gruppe selbst laesst sich nichts
* mehr zeichnen - kein Hintergrund, kein Rahmen, kein box-shadow.
/


display: contents !important;
}

/ Label bleibt oben zwischen den anderen Badges /


order: 0;
}

/ Nullhoher Umbruch - DIESE REGEL ERZEUGT REIHE 2.
* Ohne sie bleibt die Leiste einzeilig.
/


content: "";
order: 98;
flex: 0 0 100%;
height: 0;
margin: 0;
}

/ Die Tabs darunter /


order: 99;
flex-grow: 1 !important;
}


/ Firefox klappt Gruppen zu, indem es die Tabbreite auf null zieht.
* Ohne diese Regel gewinnt das min-width aus Abschnitt 1 und die Tabs
* eingeklappter Gruppen bleiben in der oberen Zeile sichtbar.
/


min-width: 0 !important;
}

/ ---------- 4. Gruppen-Badges ---------- /
/ Container fuellt die volle Zeilenhoehe, damit die Gruppenlinie
* unter Label und Tabs auf derselben Hoehe sitzt.
/
.tab-group-label-container {
height: auto !important;
align-self: stretch !important;
display: flex !important;
align-items: center !important;
}

/ Das Pill selbst uebernimmt exakt die Geometrie eines Tab-Hintergrunds.
* Falls es minimal versetzt bleibt: den Fallback 4px anpassen.
/
.tab-group-label {
box-sizing: border-box !important;
display: inline-flex !important;
align-items: center !important;
height: calc(var(--tab-min-height) - 2 * var(--tab-block-margin, 4px)) !important;
margin-block: var(--tab-block-margin, 4px) !important;
padding-inline: 10px !important;
border-radius: var(--tab-border-radius, 8px) !important;
font-weight: 500 !important;
color: inherit !important;
text-shadow: none !important;
outline: none !important;
background: color-mix(in srgb, var(--tab-group-color, currentColor) 14%, transparent) !important;
border: 1px solid color-mix(in srgb, var(--tab-group-color, currentColor) 40%, transparent) !important;
}

/ Eingeklappt: gleiche Optik statt invertierter Vollflaeche /
tab-group[collapsed] .tab-group-label {
background: color-mix(in srgb, var(--tab-group-color, currentColor) 22%, transparent) !important;
color: inherit !important;
}

/ Farbe als Punkt statt als Flaeche /
.tab-group-label::before {
content: "";
width: 8px; height: 8px;
margin-inline-end: 7px;
border-radius: 50%;
background: var(--tab-group-color, currentColor);
flex: none;
}

/ ---------- 5. Gruppenwechsel nicht animieren ---------- /






transition: none !important;
animation: none !important;
}

/ ---------- 6. Uebergang: aeltere der beiden offenen Gruppen ausblenden ---------- /
/ Beim Gruppenwechsel sind kurz zwei Gruppen offen, deren Tabs sich
* Reihe 2 teilen - das erzeugt das Aufflackern.
*
* Versteckt werden die Tabs jeder offenen Gruppe, auf die noch eine
* weitere offene folgt. Bei zwei offenen Gruppen ist damit immer genau
* eine sichtbar - Reihe 2 wird nie leer, ihr Inhalt wird nur getauscht.
*
* Das ::before muss mit ausgeblendet werden, sonst erzeugen beide
* Gruppen einen Umbruch.
*
* Braucht keine Sicherung gegen den Ruhezustand: die Bedingung "es
* folgt noch eine offene Gruppe" kann nur im Uebergang zutreffen.
*
* Ein Ansatz ueber :focus-within funktioniert hier NICHT - das
* Gruppen-Label erhaelt beim Klick keinen Fokus.
/



display: none !important;
}

/ ---------- 7. Feinschliff ---------- /
/ Reihe 1 beginnt mit einem .tab-group-label-container, der einen eigenen
* Innenabstand mitbringt. Reihe 2 beginnt mit einem nackten Tab, der seit
* display:contents buendig an der Kante sitzt. Die Differenz ist der
* Ueberstand nach links.
* Echten Wert in der Browser-Toolbox ablesen: padding-inline-start von
* .tab-group-label-container.
/


margin-inline-start: 6px;
}

/ ---------- 8. Kein Versatz beim Verschieben von Tabs ---------- /



padding-bottom: 0 !important;
}



padding-bottom: 0 !important;
margin-bottom: 0 !important;
}



margin-top: 0 !important;
}
๋ฆฌ๋ทฐ์–ด 0๋ช…์ด 0์ ์œผ๋กœ ํ‰๊ฐ€ํ•จ
๋กœ๊ทธ์ธํ•˜์—ฌ ์ด ํ™•์žฅ ๊ธฐ๋Šฅ์˜ ํ‰์ ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”
์•„์ง ํ‰์ ์ด ์—†์Šต๋‹ˆ๋‹ค

๋ณ„์  ์ €์žฅ๋จ

5
0
4
0
3
0
2
0
1
0
์•„์ง ๋ฆฌ๋ทฐ ์—†์Œ
๊ถŒํ•œ ๋ฐ ๋ฐ์ดํ„ฐ

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘:

  • ๊ฐœ๋ฐœ์ž๋Š” ์ด ํ™•์žฅ ๊ธฐ๋Šฅ์ด ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์„ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋ฐํžˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋” ์•Œ์•„๋ณด๊ธฐ
์ถ”๊ฐ€ ์ •๋ณด
๋ถ€๊ฐ€ ๊ธฐ๋Šฅ ๋งํฌ
  • ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ ID ๋ณต์‚ฌ
๋ฒ„์ „
1.0
ํฌ๊ธฐ
9.11 KB
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ
4์ผ ์ „ (2026๋…„ 7์›” 28์ผ)
๊ด€๋ จ ์นดํ…Œ๊ณ ๋ฆฌ
  • ํƒญ
๋ผ์ด์„ ์Šค
Mozilla Public License 2.0
๋ฒ„์ „ ๋ชฉ๋ก
  • ๋ชจ๋“  ๋ฒ„์ „ ๋ณด๊ธฐ
๋ชจ์Œ์ง‘์— ์ถ”๊ฐ€
์ด ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ ์‹ ๊ณ 
Mozilla ํ™ˆํŽ˜์ด์ง€๋กœ ์ด๋™

๋ถ€๊ฐ€ ๊ธฐ๋Šฅ

  • ์†Œ๊ฐœ
  • Firefox ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ ๋ธ”๋กœ๊ทธ
  • ํ™•์žฅ ๊ธฐ๋Šฅ ์›Œํฌ์ƒต
  • ๊ฐœ๋ฐœ์ž ํ—ˆ๋ธŒ
  • ๊ฐœ๋ฐœ์ž ์ •์ฑ…
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ธ”๋กœ๊ทธ
  • ํฌ๋Ÿผ
  • ๋ฒ„๊ทธ ์‹ ๊ณ 
  • ๋ฆฌ๋ทฐ ์ง€์นจ

๋‹ค์šด๋กœ๋“œ

  • Download Firefox
  • Windows
  • macOS
  • iOS
  • Android
  • Linux
  • All

์ตœ์‹  ๋นŒ๋“œ

  • Nightly
  • Beta

๊ธฐ์—…์šฉ Firefox

  • Enterprise

์ปค๋ฎค๋‹ˆํ‹ฐ

  • Connect
  • Contribute
  • Developer

ํŒ”๋กœ์šฐ

  • Instagram
  • YouTube
  • TikTok
  • Bluesky
  • Podcast
  • ๊ฐœ์ธ ์ •๋ณด
  • ์ฟ ํ‚ค
  • ๋ฒ•๋ฅ 

ํŠน๋ณ„ํ•œ ๊ณ ์ง€๊ฐ€ ์—†๋Š” ํ•œ, ๋ณธ ์‚ฌ์ดํŠธ์˜ ์ฝ˜ํ…์ธ ๋Š” Commons Attribution Share-Alike License v3.0 ๋˜๋Š” ๊ทธ ์ดํ›„ ๋ฒ„์ „์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ด ํ—ˆ๊ฐ€๋ฉ๋‹ˆ๋‹ค. Android๋Š” Google LLC์˜ ์ƒํ‘œ์ž…๋‹ˆ๋‹ค.