Open-source project
datguypiko/Firefox-Mod-Blur avatar
datguypiko/Firefox-Mod-Blur

Firefox Mod Blur: a userChrome.css that is really a bag of opt-in modules

Firefox CSS Theme - Dark theme / More compact / Modular / Blur

1,752 stars76 forksCSSLicense varies

At a glance

What is it?
datguypiko/Firefox-Mod-Blur ships userChrome.css, userContent.css and an EXTRA MODS directory of optional styles; documented functions use mod.* about:config preferences. Its strength is per-feature granularity; its cost is that it tracks Firefox releases by version number and carries no licence statement.
Who is it for?
Firefox Mod Blur fits a Firefox user on Windows or Linux who wants a dark, compact, translucent interface without giving up the browser's own settings, and who is comfortable adding about:config preferences to switch features. It does not fit anyone who needs a supported upgrade path, because the theme is versioned against specific Firefox builds and the repository states no licence, and it does not fit a managed environment where about:config edits are locked down.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 19 days ago.
What is it written in?
Mainly CSS, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Two CSS files and a directory of optional pieces

The repository is unusually small, and the top level tells the whole story: `ASSETS/`, `EXTRA MODS/`, `README.md`, `userChrome.css` and `userContent.css`.

Those two CSS files are the distinction that matters in Firefox customisation. `userChrome.css` styles the browser's own chrome, which is the part Firefox does not expose to web content, and `userContent.css` styles pages. A theme that touches only `userChrome.css` affects the browser frame and leaves web pages alone; one that also ships `userContent.css` may reach into page rendering. Which of the two you install decides how far the theme reaches into what a website sees, and a theme that changes both deserves a closer read before you apply it.

There is no build step, no package manager and no JavaScript in the project description, which lists CSS as the primary language. The deliverable is a pair of stylesheets you place in a profile.

The README references an installation guide section and a download of the latest release, both of which point at the releases page rather than at a package manager, so updating means replacing files rather than bumping a dependency.

Features are opt-in through mod.* preferences in about:config

The mechanism that makes this theme modular is `about:config`, and the preferences all share the `mod.` prefix.

The README gives the procedure: type `about:config` in the search bar, choose `number` if the value is numeric and `boolean` otherwise, press add and then the `+` button. To reset defaults you delete the added preference or set it to `false` for a boolean. To find everything the theme adds, search for `mod.`.

That last instruction is the useful one in practice. Every custom preference the stylesheet defines shares one namespace, so the entire surface of the theme is discoverable in one query rather than scattered through a configuration file. A user who wants to see what they have enabled can enumerate it.

The documented preferences, with their accepted values:

- `mod.number.of.extensions.in.a.row`, 1 to 10, changes how many extensions fit in one row, default 4 - `mod.extensions.menu.extention-icon.size`, 12 to 30, changes the extension icon size, default 22 - `mod.hide.manage-extensions.button`, true, hides the button that opens the extension manager inside settings - `mod.disable.extensions-menu.separator`, true, hides the separator between active and inactive extensions, which is only visible when at least one faded extension exists - `mod.hide.faded-extensions.inside.extensions-menu`, true, hides inactive non interactable extensions from the menu, and is not necessary if they are already hidden by default

The notes attached to those defaults are themselves documentation of Firefox's own behaviour: the separator and faded extensions only matter in certain states, which is why one option is marked as unnecessary in the common case.

The EXTRA MODS directory is where you turn features on

The `EXTRA MODS/` directory holds styles that are not applied by default, grouped by the piece of interface they touch. The README presents each group as a collapsible section so you can see what exists before adding anything.

Window controls come first, with `min-max-close_buttons.css` offered in variants: left side MacOS style, right side MacOS style, right side OS, left side OS, and the theme default. You select one file, not a combination.

Bookmarks bar modifications include `popout_bookmarks_bar_on_hover.css`, `remove_folder_icons_from_bookmarks.css` and `bookmarks_bar_same_color_as_toolbar.css`, plus a transparency option enabled by setting `mod.transparent.bookmarks-bar` or `mod.transparent.bookmarks-bar.centered` in `about:config`. Note the second of those is a centred variant, so transparency is a single mechanism with a layout choice attached rather than two unrelated toggles.

The privacy group is the one that changes behaviour rather than appearance, and its four filenames say what they do: `privacy_blur_email_in_main_menu.css` blurs the email address shown in the main menu, `privacy_blur_email_in_sync_menu.css` does the same in the sync menu, `privacy_blur_tabs_content.css` blurs tab content, and `privacy_change_email_text.css` changes the email text itself. Blurring a value on screen stops it being read over your shoulder or caught in a screenshot. It does not remove the address from Firefox or stop it being sent, which is the distinction worth holding on to.

Version tracking is per Firefox build, and that is the upgrade cost

The release history is where the maintenance model becomes explicit.

v2.80, described as v2.80.4 with early Nova fixes for Firefox v157, shipped on 2026-10-03. v2.70 was tested on Firefox v156 on 2026-09-15, and v2.64 on Firefox v152 on 2026-06-14. The README's own badge reads last tested Firefox v157.0.0, and the update badge shows 04/10/2026. The repository is not archived and the last push was on 2026-10-04, with the project describing itself as updated since 2020.

So the cadence is roughly a Firefox release, which is the right target for a chrome-styling project. Firefox's internal selectors change between releases, and a theme that reaches into them has to be updated when they do. The naming makes the coupling explicit: each release names the Firefox version it was built against, so a user can tell at a glance whether a download matches their browser.

The flip side is what you do after a Firefox update lands. Your profile keeps the old `userChrome.css`, Firefox changes the elements underneath it, and parts of the interface silently return to default until a matching theme release appears. There is no compatibility shim in a CSS file, and the README does not describe a fallback for an untested version.

What the theme changes visually, and where it stops

The core presentation choices are stated as screenshots with short captions rather than as a feature list, which is honest for a CSS project where the result is the demonstration.

macOS style buttons restyle the window controls. Light and dark theme support is present, so the theme follows or overrides the Firefox colour scheme rather than forcing one. The context menu design is updated. The search bar is made compact with buttons hidden. The homepage is described as more compact and responsive.

The remaining groups are smaller: icon changes including `firefox_view_icon_change.css`, `white_github_icon_in_bookmarks.css` and `ublock-icon-change.css`; a compact extensions menu with two styles, `cleaner_extensions_menu.css`; and a more compact vertical tabs variant enabled through a `mod.` preference whose full name is cut off in the README text available here.

The scope is worth being explicit about: this is a browser chrome and layout theme. It does not change how pages load, block anything, or touch network behaviour. Anything that does belongs to an extension, which is why the icon group includes a uBlock icon change, a cosmetic adjustment to another tool's presence rather than an integration with it.

Editorial conclusion

Firefox Mod Blur fits a Firefox user on Windows or Linux who wants a dark, compact, translucent interface without giving up the browser's own settings, and who is comfortable adding about:config preferences to switch features. It does not fit anyone who needs a supported upgrade path, because the theme is versioned against specific Firefox builds and the repository states no licence, and it does not fit a managed environment where about:config edits are locked down. Verify first that the release you download names the Firefox version it was tested against, since the latest entry is v2.80 for Firefox v157, then enable one preference at a time and confirm each still works after a Firefox update.

Frequently asked questions

What files does Firefox Mod Blur contain?

The repository top level holds `userChrome.css`, `userContent.css`, an `EXTRA MODS/` directory with optional styles, an `ASSETS/` directory and the README. There is no build step or package manager.

How do I enable the optional features in Firefox Mod Blur?

Open `about:config`, add a preference with the `mod.` prefix as a `number` or `boolean` depending on the value, and press the `+` button. To find everything the theme adds, search for `mod.`.

How do I reset a Firefox Mod Blur preference to its default?

Delete the added preference in `about:config`, or set it to `false` if it is a boolean.

Which Firefox version is the latest Firefox Mod Blur release for?

Release v2.80, described as v2.80.4 with early Nova fixes, is labelled for Firefox v157 and shipped on 2026-10-03. The README badge states last tested Firefox v157.0.0.

What does mod.number.of.extensions.in.a.row do?

It sets how many extensions appear in one row of the extensions menu, accepting values from 1 to 10, with a default of 4.

Can Firefox Mod Blur hide my email address?

The privacy mods can blur the email address in the main menu and sync menu with `privacy_blur_email_in_main_menu.css` and `privacy_blur_email_in_sync_menu.css`, and change the email text with `privacy_change_email_text.css`. These are visual changes to the browser interface.

Official sources

  1. datguypiko/Firefox-Mod-Blur on GitHub
  2. Issues
  3. README
  4. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/datguypiko-firefox-mod-blur.svg)](https://hysenlabs.com/projects/datguypiko-firefox-mod-blur)

Was this useful?