While macOS features a beautifully implemented system-wide Dark Mode that transforms your dock, menus, and supported applications into a sleek, low-light aesthetic, browsing the internet remains a jarring experience. Even with Dark Mode enabled, navigating to a website with a blazing white background can be painful, especially when working late at night.
Unfortunately, Apple’s Safari browser does not include a native, built-in switch to force every website to render in dark colors if the website developer has not explicitly designed a dark theme.
However, you can still achieve a consistent, comfortable browsing experience. This guide explains how to force dark mode on all websites in Safari on your Mac using a combination of Reader Mode, CSS injection, and trusted third-party extensions.
Method 1: Use Safari Reader Mode Automatically
The safest and most reliable way to read articles in dark mode without installing third-party software is to use Safari’s native Reader Mode. When activated, Reader Mode strips away complex web formatting, ads, and blinding white backgrounds, replacing them with a clean, dark-themed reading environment.
Instead of clicking the Reader icon manually on every page, you can instruct Safari to use it automatically whenever possible.
- Open the Safari browser on your Mac.
- Click on Safari in the top-left menu bar, then select Settings (or Preferences on older macOS versions).
- Click the Websites tab at the top of the window.
- In the left sidebar, select Reader.
- At the bottom right of the window, look for the dropdown menu labeled When visiting other websites:.
- Change the setting from Off to On.
Now, whenever you navigate to a news article, blog post, or long-form content, Safari will instantly convert it to your preferred Reader Mode theme (which automatically matches your system’s Dark Mode).
Method 2: Use a Trusted Safari Extension (Dark Reader)
While Reader Mode is excellent for articles, it breaks the layout of complex web applications, shopping sites, and social media feeds. To force a true dark mode across the entire web without destroying page functionality, you need a Safari extension that dynamically inverts colors.
Dark Reader is the industry standard for this task. It is open-source, highly customizable, and respects your privacy by not tracking your browsing history.
- Open the App Store on your Mac and search for Dark Reader for Safari.
- Download and install the extension (note: the Safari version of Dark Reader usually requires a small one-time purchase, unlike the free Chrome version).
- Once installed, open Safari and click Safari > Settings in the menu bar.
- Navigate to the Extensions tab.
- Tick the checkbox next to Dark Reader to enable it.
- Click on the new Dark Reader icon next to your Safari address bar. Here, you can toggle the extension on or off, adjust brightness and contrast, and even set a sepia filter.
Dark Reader is intelligent enough to invert bright backgrounds while preserving the colors of images and videos, providing a seamless dark web experience.
Method 3: Inject a Custom CSS Style Sheet
If you prefer not to install browser extensions and want a completely free, native solution, you can force Safari to load a custom CSS (Cascading Style Sheets) file that overrides website background colors.
This method is more technical and less dynamic than Dark Reader, but it uses zero system resources.
- Open the TextEdit application on your Mac.
- Create a new document and paste the following simple CSS code:
html, body { background-color: #1a1a1a !important; color: #e6e6e6 !important; } - Go to Format in the menu bar and select Make Plain Text.
- Save the file to your Documents folder and name it darkmode.css.
- Open Safari and go to Safari > Settings.
- Click the Advanced tab.
- Look for the Style sheet: dropdown menu and select Other…
- Navigate to where you saved darkmode.css and select it.
This forces every website to use a dark grey background with light grey text. Note that this aggressive method will break the visual formatting of many modern websites, so you may need to disable it when using complex web applications.