Skip to content

Instantly share code, notes, and snippets.

@biosmanager
Last active November 22, 2025 00:54
Show Gist options
  • Select an option

  • Save biosmanager/93544485fb0da3ad0577856186b9b3e8 to your computer and use it in GitHub Desktop.

Select an option

Save biosmanager/93544485fb0da3ad0577856186b9b3e8 to your computer and use it in GitHub Desktop.
Firefox Proton macOS Close Tab Left (updated for version 113)
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
.tabbrowser-tab .tab-close-button {
opacity: 0;
margin-left: -4.5px !important;
margin-right: 2px !important;
}
.tabbrowser-tab:not(:hover) .tab-close-button {
display: none;
}
.tabbrowser-tab:not([pinned="true"]):hover .tab-close-button {
opacity: 1;
margin-inline-end: 0;
-moz-box-ordinal-group: 0 !important;
order: -1 !important;
display: unset !important;
}
.tabbrowser-tab:not([pinned="true"]):hover .tab-icon-stack {
-moz-box-ordinal-group: 99999 !important;
order: 99999 !important;
}
.tabbrowser-tab:not([pinned="true"]):hover .tab-icon-stack:not([indicator-replaces-favicon]) {
display: none;
}
@Kwadz
Copy link

Kwadz commented Nov 2, 2021

@biosmanager, it seems we could even simplify with the following, from "Close tab" button on left?:

.tabbrowser-tab .tab-close-button {
  -moz-box-ordinal-group: 0 !important;
}

@g3nsvrv
Copy link

g3nsvrv commented Nov 2, 2021

@g3nsvrv, your Linux/theme looks nice! Which distro is it?

Garuda KDE + firefox-appmenu

@biosmanager
Copy link
Author

Improved version based on this solution: https://support.mozilla.org/zu/questions/1365405

@starburstq
Copy link

Firefox update 113.0 broke this for me. To fix it, I used order instead of -moz-box-ordinal-group.

@pchmykh
Copy link

pchmykh commented May 9, 2023

Firefox update 113.0 broke this for me. To fix it, I used order instead of -moz-box-ordinal-group.

can you please share whole code?

@JayBrown
Copy link

It would be this, but just replacing -moz-box-ordinal-group with order does not work:

.tabbrowser-tab .tab-close-button {
	opacity: 0;
	margin-left: -4.5px !important;
	margin-right: 2px !important;
}
.tabbrowser-tab:not(:hover) .tab-close-button {
	display:none;
}

.tabbrowser-tab:not([pinned="true"]):hover .tab-close-button {
	opacity: 1;
	margin-inline-end: 0;
	order: 0 !important;
	display:unset !important;
}

.tabbrowser-tab:not([pinned="true"]):hover .tab-icon-stack {
	order: 99999 !important;
}
.tabbrowser-tab:not([pinned="true"]):hover .tab-icon-stack:not([indicator-replaces-favicon]) {
	display: none;
}

Same with placing the search bar on the top of a page… order doesn't work either:

.browserContainer > findbar {
	order: 0;
}

Anyone with a solution? 🙏

@biosmanager
Copy link
Author

I tried -1 and it seems to work for me:

.tabbrowser-tab .tab-close-button {
  opacity: 0;
  margin-left: -4.5px !important;
  margin-right: 2px !important;
}

.tabbrowser-tab:not(:hover) .tab-close-button {
  display: none;
}

.tabbrowser-tab:not([pinned="true"]):hover .tab-close-button {
  opacity: 1;
  margin-inline-end: 0;
  -moz-box-ordinal-group: 0 !important;
  order: -1 !important;
  display: unset !important;
}

.tabbrowser-tab:not([pinned="true"]):hover .tab-icon-stack {
  -moz-box-ordinal-group: 99999 !important;
  order: 99999 !important;
}

.tabbrowser-tab:not([pinned="true"]):hover .tab-icon-stack:not([indicator-replaces-favicon]) {
  display: none;
}

Can you guys test this and confirm? I will then update the gist.

@JayBrown
Copy link

JayBrown commented May 10, 2023

🎉 Your solution works great… thank you! PS: order: -1; also works for search bar on top. 👍

@circa-III
Copy link

circa-III commented May 10, 2023

I tried -1 and it seems to work for me:

.tabbrowser-tab .tab-close-button {
  opacity: 0;
  margin-left: -4.5px !important;
  margin-right: 2px !important;
}

.tabbrowser-tab:not(:hover) .tab-close-button {
  display: none;
}

.tabbrowser-tab:not([pinned="true"]):hover .tab-close-button {
  opacity: 1;
  margin-inline-end: 0;
  -moz-box-ordinal-group: 0 !important;
  order: -1 !important;
  display: unset !important;
}

.tabbrowser-tab:not([pinned="true"]):hover .tab-icon-stack {
  -moz-box-ordinal-group: 99999 !important;
  order: 99999 !important;
}

.tabbrowser-tab:not([pinned="true"]):hover .tab-icon-stack:not([indicator-replaces-favicon]) {
  display: none;
}

Can you guys test this and confirm? I will then update the gist.

Worked perfect for me, thanks!

@fossilet
Copy link

fossilet commented May 11, 2023

Can you guys test this and confirm? I will then update the gist.

+1. Thank you savior.

@fossilet
Copy link

This works until recent Firefox versions. In newer versions, sometimes when I point my mouse onto pinned tabs, the favicon becomes the close button, sometime not.
图片

@snezhoque
Copy link

snezhoque commented Nov 22, 2025

I fixed it for Firefox 145.0.1 - confirmed working

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

.tabbrowser-tab {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
}

.tab-close-button {
    display: block !important;
    order: -1 !important;
    margin-inline: -15px 10px !important;
    opacity: 0 !important;
    flex-shrink: 0 !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    min-height: 16px !important;
    max-width: 16px !important;
    max-height: 16px !important;
    pointer-events: none !important;
    transition: none !important;
    padding: 0 !important;
}

.tab-close-button .toolbarbutton-icon {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    min-height: 16px !important;
    max-width: 16px !important;
    max-height: 16px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.tabbrowser-tab[selected] .tab-close-button,
.tabbrowser-tab:hover .tab-close-button {
    opacity: 1 !important;
    pointer-events: auto !important;
}

.tab-content {
    margin-inline-start: 16px !important; 
    transition: none !important;
}

.tabbrowser-tab:hover .tab-content {
    margin-inline-start: 16px !important;
}

* {
    transition: background-color 0.15s ease-in-out, 
                color 0.15s ease-in-out, 
                border-color 0.15s ease-in-out;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment