A complete recreation of the Dark Reader browser extension as a userscript.
- 4 Theme Engines: Filter, Filter+, Dynamic, and Static modes
- Full Color Control: Brightness, contrast, sepia, grayscale adjustments
- Custom Colors: Configure background and text colors
- Site List: Disable dark mode for specific sites
- Auto-Updating Configs: Configs hosted on GitHub, automatically loaded
- Automation: System preference or time-based activation
- Settings UI: Full settings panel (Alt+Shift+D)
- Import/Export: Backup and restore your settings
- Tampermonkey (recommended): Chrome | Firefox | Edge
- Violentmonkey: Chrome | Firefox
- Greasemonkey (Firefox): Firefox
Or manually: Click on DarkReader-Full.user.js in this repo and your userscript manager should prompt you to install it.
- Toggle Settings: Press
Alt+Shift+Dor use the userscript manager menu - Enable/Disable: Use the main toggle in the settings panel
- Per-Site Toggle: Toggle dark mode for the current site
- Change Mode: Switch between Filter, Filter+, Dynamic, or Static
DarkModer automatically loads config files from this repository:
| File | Purpose |
|---|---|
dark-sites.json |
Sites already dark (skip list) |
dynamic-theme-fixes.json |
Per-site CSS fixes for Dynamic mode |
inversion-fixes.json |
Per-site fixes for Filter modes |
static-themes.json |
Complete CSS themes for specific sites |
Found a site that doesn't look right? You can:
- Fork this repo
- Edit the appropriate config file
- Submit a pull request
Or open an issue with the site URL and description of the problem.
Want to host your own configs?
- Fork this repo or host JSON files on any server
- Open settings (Alt+Shift+D) > More tab
- Enter your config base URL
- Configs will load from your URL instead
- Uses CSS
filter: invert(1) hue-rotate(180deg) - Fast and simple
- May affect images (they get re-inverted)
- Works on most sites
- Uses SVG filters for better color handling
- More vivid colors than Filter mode
- Slightly slower
- Better image handling
- Analyzes page CSS and modifies colors
- Best visual results
- Preserves images naturally
- May be slower on complex pages
- Applies a simple dark CSS override
- Fastest mode
- May not work well on complex sites
- Good for simple pages
The userscript exposes a global API for advanced users:
// Access the API
const DR = window.DarkReaderUserscript;
// Enable/disable
DR.setEnabled(true);
DR.setEnabled(false);
// Change engine
DR.setEngine('dynamic'); // 'filter', 'filterPlus', 'dynamic', 'static'
// Change theme options
DR.setThemeOption('brightness', 110);
DR.setThemeOption('contrast', 95);
DR.setThemeOption('sepia', 10);
DR.setThemeOption('darkSchemeBackgroundColor', '#1a1a1a');
DR.setThemeOption('darkSchemeTextColor', '#e0e0e0');
// Toggle site
DR.toggleSite('example.com', true); // Disable for site
DR.toggleSite('example.com', false); // Enable for site
// Get current settings
const settings = DR.getSettings();
// Reset to defaults
DR.resetSettings();| Shortcut | Action |
|---|---|
| Alt+Shift+D | Toggle settings panel |
| Escape | Close settings panel |
- Uses CSS
filter: invert(1) hue-rotate(180deg) - Fast and simple
- May affect images (they get re-inverted)
- Works on most sites
- Uses SVG filters for better color handling
- More vivid colors than Filter mode
- Slightly slower
- Better image handling
- Analyzes page CSS and modifies colors
- Best visual results
- Preserves images naturally
- May be slower on complex pages
- Applies a simple dark CSS override
- Fastest mode
- May not work well on complex sites
- Good for simple pages
- Make sure your userscript manager is enabled
- Check if the site is in your disabled list
- Try switching to Filter mode
- Clear browser cache and reload
- Dynamic mode preserves images best
- In Filter mode, images are double-inverted (may still look off)
- Try a different mode
- Add site to disabled list
- Open an issue to request a fix
- Use Filter or Static mode for better performance
- Dynamic mode can be slow on heavy pages
MIT License - Same as original Dark Reader
Based on Dark Reader by Alexander Shutau and contributors.