-
-
Notifications
You must be signed in to change notification settings - Fork 190
Options
🔔🔔 Various flags are exclusively for v5.0.0
.
Previous versions must edit the code directly by referring to Legacy tips.
Since v5.0.0
, it has become easier than modifying CSS directly, but there are still caveats.
Restart is required after setting up.
The option system is built using CSS -moz-bool-pref() @supports function
as a base.
@supports
change in CSS is not detected in real time. (Only start time)
For more information, see Doc: Restrictions.
Scripts such as
install.sh
and install.ps1
can easily override styles and settings.
userChrome overrides
-
./userChrome-overrides.css
(Will be copied<FIREFOX_PROFILE>/chrome/
) <FIREFOX_PROFILE>/chrome/
userContent overrides
-
./userContent-overrides.css
(Will be copied<FIREFOX_PROFILE>/chrome/
) <FIREFOX_PROFILE>/chrome/userContent-overrides.css
user.js overrides
<FIREFOX_PROFILE>/user-overrides.js
-
./user-overrides.js
(Will be copied<FIREFOX_PROFILE>/chrome/
) <FIREFOX_PROFILE>/chrome/user-overrides.js
File user.js
must modify the file located in <FIREFOX_PROFILE>/user.js
, not <FIREFOX_PROFILE>/chrome/user.js
.
Turn off settings that cause conflicts explicitly.
If you want to change the new tab button to a small square shape?
user_pref("userChrome.tab.newtab_button_like_tab", true); // Original
// user_pref("userChrome.tab.newtab_button_smaller", true); // Photon
Replace the existing settings to false
and add a new setting.
user_pref("userChrome.tab.newtab_button_like_tab", false); // Original
user_pref("userChrome.tab.newtab_button_smaller", true); // Photon
It is recommended to erase <FIREFOX_PROFILE>/user.js
after first run.
If not, firefox will overwrite it back to user.js
's value every time it restarts.
As with user.js
, conflicting settings must be explicitly set.
In the case of the above example.
-
userChrome.tab.newtab_button_like_tab
tofalse
-
userChrome.tab.newtab_button_smaller
totrue
- Wiki:Compatibility Issues Solution: Compatibility related options, tips
- Wiki:Tips: Tips except for options
This is the difference between the default value of photon-style
and proton-style
Original (Click)
user_pref("userChrome.tab.connect_to_window", true); // Original, Photon
user_pref("userChrome.tab.color_like_toolbar", true); // Original, Photon
user_pref("userChrome.tab.lepton_like_padding", true); // Original
user_pref("userChrome.tab.photon_like_padding", false); // Photon
user_pref("userChrome.tab.dynamic_separtor", true); // Original, Proton
user_pref("userChrome.tab.static_separator", false); // Photon
user_pref("userChrome.tab.static_separator.selected_accent", false); // Just option
user_pref("userChrome.tab.newtab_button_like_tab", true); // Original
user_pref("userChrome.tab.newtab_button_smaller", false); // Photon
user_pref("userChrome.tab.newtab_button_proton", false); // Proton
user_pref("userChrome.icon.panel_full", true); // Original, Proton
user_pref("userChrome.icon.panel_photon", false); // Photon
user_pref("userChrome.icon.panel_sparse", false); // Just option
// Original Only
user_pref("userChrome.tab.box_shadow", true);
user_pref("userChrome.tab.bottom_rounded_corner", true);
// Photon Only
user_pref("userChrome.tab.photon_like_contextline", false);
user_pref("userChrome.rounding.square_tab", false);
Photon Style (Click)
user_pref("userChrome.tab.connect_to_window", true); // Original, Photon
user_pref("userChrome.tab.color_like_toolbar", true); // Original, Photon
user_pref("userChrome.tab.lepton_like_padding", false); // Original
user_pref("userChrome.tab.photon_like_padding", true); // Photon
user_pref("userChrome.tab.dynamic_separtor", false); // Original, Proton
user_pref("userChrome.tab.static_separator", true); // Photon
user_pref("userChrome.tab.static_separator.selected_accent", false); // Just option
user_pref("userChrome.tab.newtab_button_like_tab", false); // Original
user_pref("userChrome.tab.newtab_button_smaller", true); // Photon
user_pref("userChrome.tab.newtab_button_proton", false); // Proton
user_pref("userChrome.icon.panel_full", false); // Original, Proton
user_pref("userChrome.icon.panel_photon", true); // Photon
user_pref("userChrome.icon.panel_sparse", false); // Just option
// Original Only
user_pref("userChrome.tab.box_shadow", false);
user_pref("userChrome.tab.bottom_rounded_corner", false);
// Photon Only
user_pref("userChrome.tab.photon_like_contextline", true);
user_pref("userChrome.rounding.square_tab", true);
Proton Style (Click)
user_pref("userChrome.tab.connect_to_window", false); // Original, Photon
user_pref("userChrome.tab.color_like_toolbar", false); // Original, Photon
user_pref("userChrome.tab.lepton_like_padding", false); // Original
user_pref("userChrome.tab.photon_like_padding", false); // Photon
user_pref("userChrome.tab.dynamic_separtor", true); // Original, Proton
user_pref("userChrome.tab.static_separator", false); // Photon
user_pref("userChrome.tab.static_separator.selected_accent", false); // Just option
user_pref("userChrome.tab.newtab_button_like_tab", false); // Original
user_pref("userChrome.tab.newtab_button_smaller", false); // Photon
user_pref("userChrome.tab.newtab_button_proton", true); // Proton
user_pref("userChrome.icon.panel_full", true); // Original, Proton
user_pref("userChrome.icon.panel_photon", false); // Photon
user_pref("userChrome.icon.panel_sparse", false); // Just option
// Original Only
user_pref("userChrome.tab.box_shadow", false);
user_pref("userChrome.tab.bottom_rounded_corner", false);
// Photon Only
user_pref("userChrome.tab.photon_like_contextline", false);
user_pref("userChrome.rounding.square_tab", false);
userChrome.theme.built_in_contrast
userChrome.theme.system_default
userChrome.theme.proton_color
-
userChrome.theme.proton_chrome
- Need
userChrome.theme.proton_color
- Need
-
userChrome.theme.fully_color
- Need
userChrome.theme.proton_color
- Need
-
userChrome.theme.fully_dark
- Need
userChrome.theme.proton_color
- Need
Change the accent color of the built-in dark theme to blue.
Before - After
Apply
-
userChrome.theme.proton_color.dark_blue_accent
totrue
userChrome.decoration.cursor
userChrome.decoration.field_border
userChrome.decoration.download_panel
userChrome.decoration.animate
Before - After
Apply
-
userChrome.decoration.disable_panel_animate
totrue
Legacy
Add Follow code
:root {
--panelui-subview-transition-duration: 1ms !important; /* Disable top right corner menu sliding animation (0ms will not work!) */
}
Before - After
Apply
-
userChrome.decoration.disable_sidebar_animate
totrue
Before - After
Apply
-
userChrome.rounding.square_button
totrue
Before - After
Apply
-
userChrome.rounding.square_panel
totrue
-
userChrome.rounding.square_panelitem
totrue
Before - After
Apply
-
userChrome.rounding.square_menupopup
totrue
-
userChrome.rounding.square_menuitem
totrue
Before - After
Apply
-
userChrome.rounding.square_field
totrue
-
userChrome.rounding.square_checklabel
totrue
userChrome.padding.tabbar_width
userChrome.padding.tabbar_height
userChrome.padding.toolbar_button
userChrome.padding.navbar_width
userChrome.padding.urlbar
userChrome.padding.bookmarkbar
userChrome.padding.infobar
userChrome.padding.menu
userChrome.padding.bookmark_menu
userChrome.padding.global_menubar
userChrome.padding.panel
userChrome.padding.popup_panel
Refer: issue #229
Before-After
Apply
-
userChrome.padding.first_tab
totrue
Legacy
Set --space-left-tabbar
to 8px
.
/* for First Tab Space */
:root {
--space-left-tabbar: 8px; /* If you want drag space, set to 8px */
}
Refer: issue #210
Before-After
Apply
-
userChrome.padding.drag_space
totrue
-
userChrome.padding.drag_space.maximized
totrue
: Maintaining drag space even when maximized mode
Legacy
Set --space-above-tabbar
to 8px
.
/* for Extra Drag Space */
:root {
--space-above-tabbar: 8px; /* If you want drag space, set to 8px */
}
Before - After
Apply
-
userChrome.padding.menu_compact
totrue
Legacy
Change to
:root {
--menu-padding: 2px;
}
:root[uidensity=compact] {
--menu-padding: 0px;
}
Before - After
Apply
-
userChrome.padding.panel_header
totrue
Before - After
-
userChrome.padding.urlView_expanding
totrue
-
userChrome.padding.urlView_result
totrue
-
userChrome.urlView.move_icon_to_left
totrue
-
userChrome.urlView.go_button_when_typing
totrue
Before-After
-
userChrome.urlView.always_show_page_actions
totrue
userChrome.tab.multi_selected
userChrome.tab.unloaded
userChrome.tab.letters_cleary
userChrome.tab.close_button_at_hover
userChrome.tab.sound_hide_label
userChrome.tab.sound_with_favicons
userChrome.tab.pip
userChrome.tab.container
userChrome.tab.crashed
Before-After
- Before
- After
- After (Above bookmark)
Apply
-
userChrome.tab.on_bottom
totrue
-
userChrome.tab.on_bottom.above_bookmark
totrue
(Above bookmark)
Legacy
First use this code: https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/tabs_on_bottom.css
And also use this code:
/* If Do you want like IE, Add this */
/*
#PersonalToolbar {
-moz-box-ordinal-group: 2;
}
*/
/* Navigator toolbox bottom border.
If Do you want like IE, Remove this
*/
#navigator-toolbox {
border-bottom-color: var(--toolbar-bgcolor) !important; /* Original: 1px solid var(--chrome-content-separator-color); */
}
/* At Activated Menubar */
:root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) + #TabsToolbar > .titlebar-buttonbox-container {
display: block !important;
}
:root:not([chromehidden~="menubar"]) #toolbar-menubar:not([autohide="true"]) .titlebar-buttonbox-container {
visibility: hidden;
}
/* Customized https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/window_control_placeholder_support.css */
:root[tabsintitlebar] {
--uc-window-control-width: 84px; /* Same as .titlebar-buttonbox-container - Space reserved for window controls, 84px is default value of linux */
--uc-window-drag-space-pre: 30px; /* Same as .titlebar-spacer[type="pre-tabs"] - Extra space reserved on both sides of the nav-bar to be able to drag the window */
--uc-window-drag-space-post: 25px; /* Same as .titlebar-spacer[type="post-tabs"] */
}
:root[tabsintitlebar][sizemode="maximized"] {
--uc-window-drag-space-pre: 0px; /* Remove pre space */
}
:root[sizemode="fullscreen"] .titlebar-buttonbox-container {
display: none !important;
}
:root[sizemode="fullscreen"] #window-controls {
position: fixed;
display: flex;
top: 0;
right: 0;
height: 40px;
}
:root[uidensity="compact"][sizemode="fullscreen"] #window-controls {
height: 32px;
}
#nav-bar {
border-inline-start-width: var(--uc-window-drag-space-pre, 0px);
border-inline-end-width: calc(var(--uc-window-control-width, 0px) + var(--uc-window-drag-space-post, 0px));
border-inline-style: solid !important;
border-inline-color: var(--toolbar-bgcolor);
}
/* Windows */
@media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8) {
:root[tabsintitlebar] {
--uc-window-control-width: 105px;
}
}
@media (-moz-os-version: windows-win10) {
:root[tabsintitlebar] {
--uc-window-control-width: 138px;
}
}
/* Use this pref to check Mac OS where window controls are on left */
/* This pref defaults to true on Mac and doesn't actually do anything on other platforms. So if your system has window controls on LEFT side you can set the pref to true */
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
:root {
--uc-window-control-width: 72px;
}
:root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar {
border-inline-start-width: calc(var(--uc-window-control-width, 0px) + var(--uc-window-drag-space-post, 0px));
border-inline-end-width: var(--uc-window-drag-space-pre, 0px);
}
}
-
userChrome.tab.on_bottom.menubar_on_top
to true
- Sample site: https://www.phoronix.com/forums/
Before - After
Apply
-
userChrome.tab.always_show_tab_icon
totrue
Legacy
.tab-icon-image:not([src], [pinned], [crashed], [busy]) {
display: -moz-inline-box !important;
}
And Remove These Codes:
or Using this addon
Apply
-
userChrome.tab.close_button_at_hover
tofalse
Legacy
Remove this code
Refer: #280
Apply
-
userChrome.tab.close_button_at_hover
totrue
(Default) -
userChrome.tab.close_button_at_hover.always
totrue
Legacy
.tabbrowser-tab:not([visuallyselected]) .tab-close-button {
visibility: collapse !important;
opacity: 0;
}
.tabbrowser-tab:hover .tab-close-button {
visibility: visible !important;
opacity: 1;
}
/* Animate */
@media (prefers-reduced-motion: no-preference) {
/* Fade out */
.tabbrowser-tab:not([visuallyselected]) .tab-close-button {
transition: opacity 0.1s var(--animation-easing-function) !important;
}
/* Fade in */
.tabbrowser-tab:hover .tab-close-button {
transition: opacity 0.25s var(--animation-easing-function) !important;
}
}
Before - After
Apply
-
userChrome.tab.close_button_at_pinned
totrue
: Show closebutton when hover to selected pinned tab -
userChrome.tab.close_button_at_pinned.alway
totrue
: Show closebutton when selected pinned tab -
userChrome.tab.close_button_at_pinned.background
totrue
: Show closebutton when hover to pinned tab
Legacy
Refer this code
- https://github.com/black7375/Firefox-UI-Fix/blob/5858485e367106cc74bf36662d020038af88867f/userChrome.css#L390-L434
- https://github.com/black7375/Firefox-UI-Fix/blob/5858485e367106cc74bf36662d020038af88867f/userChrome.css#L390-L467
or Refer this
Before - After
Apply
-
userChrome.tab.sound_show_label
totrue
Legacy
.tab-secondary-label:is([soundplaying], [muted], [activemedia-blocked], [pictureinpicture]){
display: -moz-box !important;
}
Refer: issue #71
Before - After
Apply
-
userChrome.tab.centered_label
totrue
Legacy
Use this code:
/* Based on https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/centered_tab_label.css */
.tab-label-container{ display: grid; justify-content: safe center; align-items: safe center; }
.tab-label,.tab-secondary-label{ overflow: hidden; }
.tabbrowser-tab[selected]:not(:hover) .tab-label-container:not([textoverflow]),
.tabbrowser-tab:not(:hover,[pinned]) .tab-label-container:not([textoverflow]) { margin-inline-end: 5px; }
#tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not(:hover,[pinned]) .tab-label-container:not([textoverflow]) { margin-inline-end: 1px; }
#tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([selected]):not(:hover, [pinned]) .tab-label-container:not([textoverflow]) { margin-inline-end: 19px; }
Before - After
- Before
- After (Remove strip)
- After (Full width separator)
Apply
-
userChrome.panel.remove_strip
totrue
-
userChrome.panel.full_width_separator
totrue
Legacy
/* Remove panel strip */
#appMenu-fxa-separator {
display: none;
}
Before - After
Apply
-
userChrome.panel.full_width_padding
totrue
userChrome.fullscreen.overlap
userChrome.fullscreen.show_bookmarkbar
userChrome.icon.library
userChrome.icon.panel
userChrome.icon.menu
userChrome.icon.context_menu
userChrome.icon.global_menu
userChrome.icon.global_menubar
Before - After
Apply
-
userChrome.padding.global_menubar
tofalse
-
userChrome.icon.global_menubar
tofalse
Legacy
Remove this code
- https://github.com/black7375/Firefox-UI-Fix/blob/7acbf850ec212602c5845b640a2fb887e8d93bc9/userChrome.css#L2590
- https://github.com/black7375/Firefox-UI-Fix/blob/7acbf850ec212602c5845b640a2fb887e8d93bc9/userChrome.css#L2634-L2647
- https://github.com/black7375/Firefox-UI-Fix/blob/7acbf850ec212602c5845b640a2fb887e8d93bc9/userChrome.css#L3515-L3537
Original
Legacy
Replace Target: https://github.com/black7375/Firefox-UI-Fix/blob/5858485e367106cc74bf36662d020038af88867f/userChrome.css#L685-L689
Image to right
-
userChrome.icon.account_image_to_right
totrue
Legacy
#fxa-menu-avatar {
display: -moz-inline-box !important;
margin-inline-end: var(--arrowpanel-menuitem-padding);
-moz-box-ordinal-group: 2 !important;
}
Text to right
-
userChrome.icon.account_label_to_right
totrue
Legacy
#fxa-menu-avatar {
display: -moz-inline-box !important;
margin-inline-end: var(--arrowpanel-menuitem-padding);
}
#fxa-menu-header-title, #fxa-menu-header-description {
text-align: right;
}
Both to right
-
userChrome.icon.account_image_to_right
totrue
-
userChrome.icon.account_label_to_right
totrue
Legacy
#fxa-menu-avatar {
display: -moz-inline-box !important;
margin-inline-end: var(--arrowpanel-menuitem-padding);
-moz-box-ordinal-group: 2 !important;
}
#fxa-menu-header-title, #fxa-menu-header-description {
text-align: right;
}
userContent.player.ui
userContent.player.icon
userContent.player.noaudio
userContent.player.size
userContent.player.click_to_play
userContent.player.animate
Before - After
Apply
-
userContent.player.ui.twoline
totrue
userContent.newTab.field_border
userContent.newTab.full_icon
userContent.newTab.animate
userContent.newTab.pocket_to_last
userContent.newTab.searchbar
userContent.page.illustration
userContent.page.proton_color
-
userContent.page.dark_mode
- Need
userContent.page.proton_color
- Need
-
userContent.page.proton
- Need
userContent.page.proton_color
- Need
Before - Blue - System
Apply
- Blue Accent:
userContent.page.proton_color.dark_blue_accent
totrue
- System Accent:
userContent.page.proton_color.system_accent
totrue