|
/* Chrome-style Active Tabs for Firefox */ |
|
/* Place this file in: <Firefox Profile>/chrome/userChrome.css */ |
|
/* Enable: about:config → toolkit.legacyUserProfileCustomizations.stylesheets = true */ |
|
|
|
/* ============================================ |
|
COLOR SCHEME (light / dark) |
|
============================================ */ |
|
:root { |
|
--chrome-bg: #ddd9ce; |
|
--chrome-hover: #ccc7bb; |
|
--chrome-active: #ffffff; |
|
--chrome-multiselected: #e8eaed; |
|
--chrome-close-hover: rgba(0, 0, 0, 0.1); |
|
--chrome-label-inactive-opacity: 0.7; |
|
--chrome-card-shadow: 0 1px 4px rgba(0, 0, 0, 0.15); |
|
--chrome-tab-shadow: 0 -1px 4px rgba(0, 0, 0, 0.15); |
|
} |
|
|
|
@media (prefers-color-scheme: dark) { |
|
:root { |
|
--chrome-bg: #202124; |
|
--chrome-hover: #35363a; |
|
--chrome-active: #292a2d; |
|
--chrome-multiselected: #35363a; |
|
--chrome-close-hover: rgba(255, 255, 255, 0.15); |
|
--chrome-label-inactive-opacity: 0.6; |
|
--chrome-card-shadow: none; |
|
--chrome-tab-shadow: none; |
|
} |
|
} |
|
|
|
/* ============================================ |
|
TAB BAR BACKGROUND |
|
============================================ */ |
|
#tabbrowser-tabs { |
|
--tab-min-height: 33px !important; |
|
--tab-min-width: 0 !important; |
|
} |
|
|
|
:root { |
|
--tab-min-height: 33px !important; |
|
} |
|
|
|
#TabsToolbar { |
|
background-color: var(--chrome-bg) !important; |
|
padding-top: 4px !important; |
|
padding-bottom: 0 !important; |
|
height: auto !important; |
|
min-height: 0 !important; |
|
} |
|
|
|
#tabbrowser-tabs, |
|
#tabbrowser-arrowscrollbox { |
|
min-height: 0 !important; |
|
max-height: 34px !important; |
|
} |
|
|
|
#tabbrowser-arrowscrollbox { |
|
margin-bottom: 0 !important; |
|
padding-bottom: 0 !important; |
|
padding-inline-start: 10px !important; |
|
overflow: visible !important; |
|
} |
|
|
|
#tabbrowser-arrowscrollbox-periphery, |
|
#tabbrowser-tabs { |
|
overflow: visible !important; |
|
} |
|
|
|
scrollbox[part="scrollbox"] { |
|
overflow: clip !important; |
|
overflow-clip-margin: 10px !important; |
|
} |
|
|
|
/* Remove default tab line/indicator */ |
|
.tab-line, |
|
.tabbrowser-tab .tab-context-line { |
|
display: none !important; |
|
} |
|
|
|
/* ============================================ |
|
ALL TABS - BASE STYLING |
|
============================================ */ |
|
.tabbrowser-tab { |
|
margin: 0 !important; |
|
padding: 0 !important; |
|
border-radius: 8px 8px 0 0 !important; |
|
position: relative !important; |
|
overflow: visible !important; |
|
height: 33px !important; |
|
min-height: 33px !important; |
|
max-height: 33px !important; |
|
} |
|
|
|
.tab-stack { |
|
min-height: 0 !important; |
|
max-height: 34px !important; |
|
} |
|
|
|
.tab-background { |
|
border-radius: 8px 8px 0 0 !important; |
|
margin: 0 !important; |
|
margin-block: 0 !important; |
|
padding: 0 !important; |
|
outline: none !important; |
|
border: none !important; |
|
box-shadow: none !important; |
|
overflow: visible !important; |
|
} |
|
|
|
/* Kill any Firefox default tab background effects */ |
|
.tab-background::before, |
|
.tab-background::after { |
|
display: none !important; |
|
} |
|
|
|
/* ============================================ |
|
INACTIVE TABS |
|
============================================ */ |
|
.tabbrowser-tab:not([selected]) .tab-background, |
|
.tabbrowser-tab:not([selected]):not([multiselected]) .tab-background { |
|
background: transparent !important; |
|
background-color: transparent !important; |
|
background-image: none !important; |
|
} |
|
|
|
.tabbrowser-tab:not([selected]):not([multiselected]):hover .tab-background { |
|
background-color: var(--chrome-hover) !important; |
|
} |
|
|
|
/* Hide all tab separators */ |
|
.tabbrowser-tab::before, |
|
.tabbrowser-tab::after { |
|
/* preserve only for selected tab (overridden below) */ |
|
} |
|
|
|
.tabbrowser-tab:not([selected])::before { |
|
display: none !important; |
|
} |
|
|
|
/* ============================================ |
|
ACTIVE TAB - CHROME STYLE |
|
============================================ */ |
|
.tabbrowser-tab[selected] .tab-background { |
|
background: var(--chrome-active) !important; |
|
background-color: var(--chrome-active) !important; |
|
background-image: none !important; |
|
border-radius: 8px 8px 0 0 !important; |
|
box-shadow: var(--chrome-tab-shadow) !important; |
|
} |
|
|
|
.tabbrowser-tab[selected] { |
|
z-index: 2 !important; |
|
overflow: visible !important; |
|
} |
|
|
|
/* Inverted rounded corner - LEFT side (on the tab itself, not tab-background) */ |
|
.tabbrowser-tab[selected]::before { |
|
content: "" !important; |
|
display: block !important; |
|
position: absolute !important; |
|
bottom: 0 !important; |
|
left: -8px !important; |
|
width: 8px !important; |
|
height: 8px !important; |
|
background: transparent !important; |
|
background-image: radial-gradient(circle at 0 0, transparent 8px, var(--chrome-active) 8.5px) !important; |
|
z-index: 3 !important; |
|
pointer-events: none !important; |
|
} |
|
|
|
/* Inverted rounded corner - RIGHT side (on the tab itself, not tab-background) */ |
|
.tabbrowser-tab[selected]::after { |
|
content: "" !important; |
|
display: block !important; |
|
position: absolute !important; |
|
bottom: 0 !important; |
|
right: -8px !important; |
|
width: 8px !important; |
|
height: 8px !important; |
|
background: transparent !important; |
|
background-image: radial-gradient(circle at 8px 0, transparent 8px, var(--chrome-active) 8.5px) !important; |
|
z-index: 3 !important; |
|
pointer-events: none !important; |
|
} |
|
|
|
/* ============================================ |
|
TAB TEXT |
|
============================================ */ |
|
.tab-label { |
|
font-size: 12px !important; |
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important; |
|
} |
|
|
|
.tabbrowser-tab:not([selected]) .tab-label { |
|
opacity: var(--chrome-label-inactive-opacity) !important; |
|
} |
|
|
|
.tabbrowser-tab[selected] .tab-label { |
|
opacity: 1 !important; |
|
} |
|
|
|
/* ============================================ |
|
TOOLBAR (blends with active tab) |
|
============================================ */ |
|
#nav-bar { |
|
background-color: var(--chrome-active) !important; |
|
border-top: none !important; |
|
border-bottom: none !important; |
|
box-shadow: none !important; |
|
margin-top: -1px !important; |
|
padding-top: 4px !important; |
|
margin-left: 6px !important; |
|
margin-right: 6px !important; |
|
border-radius: 10px 10px 0 0 !important; |
|
} |
|
|
|
/* Remove any separator between tabs and nav-bar */ |
|
#navigator-toolbox { |
|
border-bottom: none !important; |
|
box-shadow: none !important; |
|
} |
|
|
|
#navigator-toolbox::after { |
|
display: none !important; |
|
border: none !important; |
|
} |
|
|
|
/* ============================================ |
|
NEW TAB BUTTON |
|
============================================ */ |
|
#tabs-newtab-button, |
|
#TabsToolbar #new-tab-button { |
|
border-radius: 8px 8px 0 0 !important; |
|
padding: 4px 8px !important; |
|
} |
|
|
|
#tabs-newtab-button:hover, |
|
#TabsToolbar #new-tab-button:hover { |
|
background-color: var(--chrome-hover) !important; |
|
} |
|
|
|
/* ============================================ |
|
CLOSE BUTTON ON TABS |
|
============================================ */ |
|
.tab-close-button { |
|
border-radius: 50% !important; |
|
padding: 2px !important; |
|
width: 18px !important; |
|
height: 18px !important; |
|
} |
|
|
|
.tab-close-button:hover { |
|
background-color: var(--chrome-close-hover) !important; |
|
} |
|
|
|
/* ============================================ |
|
MULTISELECTED TABS |
|
============================================ */ |
|
.tabbrowser-tab[multiselected] .tab-background { |
|
background-color: var(--chrome-multiselected) !important; |
|
border-radius: 8px 8px 0 0 !important; |
|
} |
|
|
|
/* ============================================ |
|
UNIFIED BACKGROUND COLOR |
|
============================================ */ |
|
/* Make the entire window background the same color */ |
|
#main-window, |
|
#navigator-toolbox, |
|
#titlebar { |
|
background-color: var(--chrome-bg) !important; |
|
} |
|
|
|
/* ============================================ |
|
CONTENT AREA - ROUNDED CORNERS + PADDING |
|
============================================ */ |
|
/* Padding around the web content */ |
|
#browser { |
|
background-color: var(--chrome-bg) !important; |
|
padding: 0 6px 6px 6px !important; |
|
} |
|
|
|
#appcontent { |
|
background-color: var(--chrome-bg) !important; |
|
} |
|
|
|
/* Round the content panels (no top rounding - connects to nav-bar) */ |
|
.browserStack, |
|
browser[type="content"], |
|
#tabbrowser-tabpanels { |
|
border-radius: 0 0 10px 10px !important; |
|
overflow: hidden !important; |
|
box-shadow: var(--chrome-card-shadow) !important; |
|
} |