Join the AMA (Ask Me Anything) with the Firefox leadership team to celebrate Firefox 20th anniversary and discuss Firefox’s future on Mozilla Connect. Mark your calendar on Thursday, November 14, 18:00 - 20:00 UTC!

This site will have limited functionality while we undergo maintenance to improve your experience. If an article doesn't solve your issue and you want to ask a question, we have our support community waiting to help you at @FirefoxSupport on Twitter and/r/firefox on Reddit.

Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

userChrome.css is not working with toolkit option enabled

more options

I been reading various guide about how to use CSS to override the hyperlink color. But it is not working, Firefox are not grabbing the userChrome.css from the folder. I am not sure if there is other step that I have to do since I did everything to enable it through multiple guides.


  • toolkit.legacyUserProfileCustomizations.stylesheets is enabled
  • chrome folder is created and located in my profile root folder
  • userChrome.css and userContent.css is in chrome folder
  • restarted Firefox multiple times even checking the task manager to ensure that Firefox is absolutely shut down.

Based on those above, it should be working. I thought it was the CSS code, however Stylus have no issue with the code. Yes, there are two empty rules in there because I got the impression that CSS strongly relies on inheritance. So I set this way to ensure that that nothing will be overridden by the website CSS. I created a clean fresh profile and set the same thing above and restarted Firefox. Unfortunately, it didn't work. So the addons are ruled out. my default profile is ruled out since the clean fresh profile having the same issue.

I don't know what is the possible issue of this? I don't know if my CSS is defined correctly since Stylus does not have a issue with it and applying CSS on all websites. Anyone have a clue?

My CSS content:

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

a: link {} a: visited {

   color: #ffa500 !important;

} a: hover {} a: active {

   color: #ffa500 !important;

}

I been reading various guide about how to use CSS to override the hyperlink color. But it is not working, Firefox are not grabbing the userChrome.css from the folder. I am not sure if there is other step that I have to do since I did everything to enable it through multiple guides. * toolkit.legacyUserProfileCustomizations.stylesheets is enabled * chrome folder is created and located in my profile root folder * userChrome.css and userContent.css is in chrome folder * restarted Firefox multiple times even checking the task manager to ensure that Firefox is absolutely shut down. Based on those above, it should be working. I thought it was the CSS code, however Stylus have no issue with the code. Yes, there are two empty rules in there because I got the impression that CSS strongly relies on inheritance. So I set this way to ensure that that nothing will be overridden by the website CSS. I created a clean fresh profile and set the same thing above and restarted Firefox. Unfortunately, it didn't work. So the addons are ruled out. my default profile is ruled out since the clean fresh profile having the same issue. I don't know what is the possible issue of this? I don't know if my CSS is defined correctly since Stylus does not have a issue with it and applying CSS on all websites. Anyone have a clue? My CSS content: @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); a: link {} a: visited { color: #ffa500 !important; } a: hover {} a: active { color: #ffa500 !important; }

Chosen solution

Thank you, thank you, thank you so much for your help. I managed to get userContent working. I thought it was the permission or file access issue. Cued me opening up ProcMon and checking if Firefox can access it. And Firefox accesses the file just fine. I checked the CSS code, and I realized the error. There is a spacing between a: and visited:

a:" "visited {color: #ffa500 !important;}

That happened because I used Notepad++ beautifier to clean it up. I realized that it is for html and JS, not CSS *head desk repeatedly*. I fixed the spacing and it is working. To be fair, I am extremely novice with CSS, it is my first time working with CSS. That is an interesting journey for me. Thank you so much for helping me out and your patience with my incompetency.

Read this answer in context 👍 0

All Replies (6)

more options

I always forget to include the specs. I have Firefox 91.0.2 and Windows 10.

more options

Just to confirm, this --

darkestdream said

  • chrome folder is created and located in my profile root folder

-- should be the folder listed in the table on the Troubleshooting Information page, Profile Folder row. The chrome folder should slot in below the bookmarkbackups folder and above the crashes folder:

  • bookmarkbackups
  • browser-extension-data (not always present)
  • chrome (folder you created)
  • chrome_debugger_profile (not always present)
  • crashes
I thought it was the CSS code, however Stylus have no issue with the code.

userContent.css should be able to do what Stylus does.

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

Don't use the XUL namespace for web pages, it limits the scope of your rules to legacy non-standard tags. Actually, I recommend not using it in userChrome.css either. https://www.userchrome.org/adding-style-recipes-userchrome-css.html#namespaces

more options

jscher2000 said

-- should be the folder listed in the table on the Troubleshooting Information page, Profile Folder row. The chrome folder should slot in below the bookmarkbackups folder and above the crashes folder:

My apologies, English is not my native language. That is what I meant, the chrome folder is in my profile folder. I am assuming I am using the phrase incorrectly? Because about:profiles called my profile a root directory.

To confirm, the directory and the file are listed: ~\Users\<user_profile>\AppData\Roaming\Mozilla\Firefox\Profiles\<main_profile_folder>\chrome\userChrome.css?

userContent.css should be able to do what Stylus does.

Ok, so I just copy and paste my custom CSS in userContent.css?

Don't use the XUL namespace for web pages, it limits the scope of your rules to legacy non-standard tags. Actually, I recommend not using it in userChrome.css either. https://www.userchrome.org/adding-style-recipes-userchrome-css.html#namespaces

I see, thank you for this. Every guide I came across always scream to have the XUL includes, even there are multiple ready-made CSS with examples file that came with those same namespaces in GitHub and extensions.

I don't need to have the namespace set up? Keep it empty will applies on every website?

more options

It sounds like your profile folder is correct. To modify the user interface, use a userChrome.css file and to modify websites (or built-in web pages like the Firefox Home / new tab page), use a userContent.css file.

A XUL namespace declaration can be used in userChrome.css files when you are styling XUL tags like <menuitem> but it is not applicable to HTML tags like <a> which you want to style. You can use two namespaces (XUL and HTML) as a workaround, but I recommend simply not using one at all.

more options

Chosen Solution

Thank you, thank you, thank you so much for your help. I managed to get userContent working. I thought it was the permission or file access issue. Cued me opening up ProcMon and checking if Firefox can access it. And Firefox accesses the file just fine. I checked the CSS code, and I realized the error. There is a spacing between a: and visited:

a:" "visited {color: #ffa500 !important;}

That happened because I used Notepad++ beautifier to clean it up. I realized that it is for html and JS, not CSS *head desk repeatedly*. I fixed the spacing and it is working. To be fair, I am extremely novice with CSS, it is my first time working with CSS. That is an interesting journey for me. Thank you so much for helping me out and your patience with my incompetency.

more options

Glad you found it, and sorry for not noticing that.