Both NightOwl (a Firefox extension) and your operating system's dark mode settings control dark mode. They work at different layers and affect different things. Here is a clear comparison.
What OS dark mode does
macOS, Windows, and Linux all have a system-level dark mode setting. When you enable it:
- The OS interface switches to dark colors (menus, windows, system apps)
- Applications that follow the system setting switch to dark mode
- Websites that implement
prefers-color-scheme: darkin their CSS will switch to dark mode
What it does NOT do: Force dark mode on websites that have not implemented it. Many websites — news sites, older web apps, legacy enterprise tools — do not check prefers-color-scheme and will stay light even when your OS is in dark mode.
What NightOwl does
NightOwl is a Firefox extension that injects CSS into every page to force dark mode, regardless of whether the site implements prefers-color-scheme.
When NightOwl is active:
- Every website you visit is displayed in dark mode
- Sites that do not natively support dark mode get the extension's dark treatment
- You can whitelist specific sites where you want to preserve the light display
What it does NOT do: Affect the OS interface, desktop apps, or anything outside Firefox.
Side-by-side comparison
| OS dark mode | NightOwl | |
|---|---|---|
| Affects OS interface | ✓ | ✗ |
| Affects Firefox UI | ✓ (if Firefox follows system) | ✗ |
| Affects all websites | ✗ (only those that implement it) | ✓ |
| Affects non-browser apps | ✓ | ✗ |
| Auto-schedule by sunset | ✗ | ✓ |
| Per-site control | ✗ | ✓ (whitelist) |
Which to use
Use OS dark mode for system-wide dark interface (apps, menus, file manager).
Use NightOwl for forcing dark mode on websites that do not implement it natively.
Use both for a comprehensive dark experience: OS dark mode handles everything outside the browser; NightOwl handles websites inside Firefox.
They do not conflict — they affect different layers.
NightOwl is one of 11 Firefox extensions I built — see the full series.
Top comments (0)