ChromeFirefoxFree, MIT license
Light or dark, one tab at a time.
Paletmin switches the website in the current tab between its light and dark palette with one click. The tab keeps your choice until you close it, and the rest of the browser stays as it is. No popup, no settings page, no account, and no data collection.
Chrome 118 or later on macOS, Windows, Linux, or ChromeOS, or Firefox 140 or later on desktop. Free and open source, on the Chrome Web Store and Mozilla Add-ons.
- One click, three modes
- Each tab keeps its own
- No network requests
- No account, no analytics
- Open source, MIT
- Chrome and Firefox
One job
Click once. The site switches.
Paletmin changes which palette a website thinks you prefer, the same signal your operating system sends. The site applies the light or dark design it already has, and Paletmin adds nothing of its own.
Three modes, one click
Auto follows the browser's own light or dark setting. Dark and Light force the website's palette. Each click moves the tab to its next mode, and the first click always changes the page.
One tab at a time
Each tab keeps its mode until you close it. Read one site dark while the rest of the browser stays light, or the other way round.
The website's own dark theme
If a site has a dark palette, you get the real one, designed by its makers. If it has none, or ignores the preference, nothing changes.
Rewrites the site's rules
Stylesheet rules, media attributes, and nested groups that mention prefers-color-scheme are swapped inside the tab, and put back when you return to Auto.
Scripts see it too
matchMedia() answers for the chosen palette and fires change events, so themes driven by JavaScript switch along with the stylesheets.
Form controls follow
Pages that declare color-scheme: light dark get it forced too, which drives light-dark() colors, scrollbars, and form controls.
Every frame, every navigation
The mode applies in every frame of the tab and again after each navigation, until you close the tab.
An icon that matches the toolbar
The toolbar icon shows the tab's mode and is drawn for the browser's light or dark toolbar, so it reads well in either.
Nothing leaves the tab
No network requests, no account, no analytics, and no server. Tab preferences and palette-detection state stay on your device. No page content, URLs, or browsing history are stored.
How it works
Flip the signal, not the page.
A website with a dark theme asks the browser one question: does this person prefer dark or light? Paletmin changes the answer inside the tab, so the site applies the design it already has.
In stylesheets
Every
@mediaand@importrule that mentionsprefers-color-schemeis rewritten to name the other scheme, including rules nested in@supportsand@layer.In markup
mediaattributes onlink,style,source, andmetaelements are swapped the same way, so alternate stylesheets and picture sources follow.In scripts
A script that runs before the page's own makes
matchMedia()report the chosen palette and sends change events, as a real switch would.
Three modes
Auto, Dark, Light. Then back.
Click the toolbar icon to cycle. The order depends on the browser's own setting, so the first click always shows the other palette.
Auto
The tab follows the browser's light or dark setting. Every tab starts here.
Dark
The website shows its dark palette, whatever the browser is set to.
Light
The website shows its light palette, whatever the browser is set to.
Keyboard
Assign a shortcut to cycle without reaching for the mouse: at
chrome://extensions/shortcutsin Chrome, or under Manage Extension Shortcuts in Firefox's add-ons manager.
Private by design
Nothing leaves the tab.
Paletmin reads and rewrites the page's stylesheets inside the tab and makes no network requests at all. There is no Paletmin account, no analytics, and no server.
Why the browser warns about all websites
Both browsers describe a script that runs on every page as access to your data on all websites. Paletmin needs that to swap the page's rules, and does nothing else with the access.
Stored on this device
Both versions store each tab's mode for the session and the browser's light or dark setting. Chrome also keeps temporary palette-detection and initialization flags, with a random token for each document. No page content, URLs, or browsing history are stored.
No usage tracking
No account, no analytics, no advertising, and no record of the pages you visit. The Firefox add-on declares in its manifest that it collects no data, and the source of both versions is public, so you can read exactly what runs.
The details
Small things, done carefully.
Requirements
Google Chrome 118 or later on macOS, Windows, Linux, or ChromeOS, or Firefox 140 or later on desktop. Nothing else to install, and no account.
Nothing to set up
No popup, no settings page, no setup assistant. Add it from the Chrome Web Store or Mozilla Add-ons, and the icon is ready in the toolbar.
Local files
In Chrome, turn on Allow access to file URLs on the extension's details page to switch pages opened from disk.
When a site does not change
If a website has no dark theme, or ignores the preference, nothing happens. Rules in stylesheets from other sites and styles in shadow roots are left as they are.
Clean updates
After an update, the new scripts restore each open page and take over, so a forced tab is not left with stale changes. Tabs may return to Auto afterwards.
The browser's own pages
Chrome's chrome:// pages and the Chrome Web Store, and Firefox's internal pages, PDF viewer, and protected Mozilla sites, do not allow extensions to run, so they stay on Auto.
Open source
The complete source is on GitHub under the MIT License, in one repository per browser: paletmin-chrome and paletmin-firefox. The Chrome repository includes a test suite that drives the extension in headless Chromium.
Easy to remove
Remove it at chrome://extensions or in Firefox's add-ons manager. The browser deletes the extension together with the little it stored. Reload open pages afterwards to clear its changes.
Support and policies
Help, privacy, and terms.
Find help and read the extension's privacy policy and terms.
On the Chrome Web Store and Mozilla Add-ons.
Paletmin is published for Chrome and Firefox. Add it from either store, read the source on GitHub, or visit Support for help.