ChromeFree, MIT licenseNo network requests
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 Chrome 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. Free and open source.
- One click, three modes
- Each tab keeps its own
- No network requests
- No account, no analytics
- Open source, MIT
- Optional keyboard shortcut
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 Chrome'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 Chrome 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 Chrome
The toolbar icon shows the tab's mode and is drawn for Chrome'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. The only things stored are each forced tab's mode and whether Chrome is light or dark.
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 Chrome's own setting, so the first click always shows the other palette.
Auto
The tab follows Chrome's light or dark setting. Every tab starts here, and nothing is stored for it.
Dark
The website shows its dark palette, whatever Chrome is set to.
Light
The website shows its light palette, whatever Chrome is set to.
Keyboard
Assign a shortcut at
chrome://extensions/shortcutsto cycle without reaching for the mouse.
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 Chrome warns about all websites
Running a script on a page is what Chrome calls reading and changing your data. Paletmin needs that to swap the page's rules, and does nothing else with the access.
Two small things stored
Each forced tab's mode, in session storage that Chrome clears when it quits, and whether Chrome is light or dark, so the toolbar icon is right after a restart.
No usage tracking
No account, no analytics, no advertising, and no record of the pages you visit. The source 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. Nothing else to install, and no account.
Nothing to set up
No popup, no settings page, no setup assistant. Install it, and the icon is ready in the toolbar.
Local files
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 tell the previous ones in open tabs to restore the page and step aside, so a forced tab is not left with stale changes.
Chrome's own pages
chrome:// pages and the Chrome Web Store do not allow extensions to run, so they stay on Auto.
Open source
The complete source is on GitHub under the MIT License, with a test suite that drives the extension in headless Chromium.
Easy to remove
Remove it at chrome://extensions. Chrome deletes the extension together with the little it stored.
Support and policies
Help, privacy, and terms.
Find help and read the extension's privacy policy and terms.
Coming to the Chrome Web Store.
Paletmin is a Chrome extension. Follow the project for launch updates, load it unpacked from the repository today, or visit Support for help.