Paletmin

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 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 @media and @import rule that mentions prefers-color-scheme is rewritten to name the other scheme, including rules nested in @supports and @layer.

  • In markup

    media attributes on link, style, source, and meta elements 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/shortcuts in 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.