toolkit.legacyUserProfileCustomizations.stylesheetsis set to
- Save each file to your Firefox profile's chrome folder, creating one if the folder does not already exist. More information: http://kb.mozillazine.org/UserChrome.css
userChrome.csshas already been modified in your profile add the
userChrome.cssrules below to that existing file. Note there should only be one xul namespace declaration, which should be the first line in the file.
- Restart Firefox.
- Behavior is changed. The up/down/left/right buttons are removed, and by default the feature to click a location on the scrollbar to scroll to it is disabled so that the scroll bar can be clicked through when it overlays an element on the page. Remove the pointer-events rules to restore.
- The styles can be toggled at any time by going to the
Toolsmenu in firefox and toggling the
Windows 10 Style Scrollbarsoption. The page must be refreshed for the window scrollbars to update, but on-page elements should change instantly.
- Style may be edited in userChrome.js. For changes to take hold, clear your cache in
...\AppData\Local\Mozilla\Firefox\Profilesby deleting the folder for your profile.
- Live debugging may be performed via Browser Toolbox console https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox
- Make edits to userChrome.js in a text editor and copy/paste the entire contents of the file into the console. Execute and refresh a page to see changes. Rules are cached so if you set a rule you need to clear your profile cache to if you want to remove the rule.
- Known issue with hover states for window scrollbars cause transition flashing. This prevents full replication of windows 10 style scrollbar behavior, with the workaround being a simpler fade in/out rather than a full scaling animation. On-page elements do not have the hover state issues.
- Addressed change with Firefox 69.0 that prevents script loading from a file by directly embedding the XML as a data url.
- The unencoded dataurl (userChrome.xml) is found below for reference
- Changed how youtube is detected. The method is still inconsistent and a scroll bar will some times be displayed.
- On youtube.com the scrollbar will be invisible except when being hovered over.
- Added a special case to hide scrollbars on youtube.com because google forgot what Fullscreen is supposed to be.
- Added z-index rule to fix compositing/click issues that came about some time after FF 57 (thanks @joshieecs)
- Added rules to address linux/gtk compatability (thanks @axel668)
- Modified css string to use backticks and so not require formatting chars
- New transition animations
- Removed unused rules
- Scrollbar width changed to 12px from 16px to better match native style
@notes in userChrome.js for licensing information of sourced parts. The css content provided by me is licensed as follows:
ISC License (ISC)
Copyright 2018 @MrKwatz
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.