Not another dark mode.
Most extensions give you one dark and call it a day. TintLens gives every site a color you actually chose — sixteen themes across the full hue circle, an editor for the seventeenth, and a contrast floor that keeps the text readable.
Dark mode solved a brightness problem and created a sameness problem. Every site converges on the same near-black, and the only thing left to distinguish one page from the next is the typography — which most of the web already gave up on.
Hue carries information. A reader who spends two hours a day
in a browser builds spatial memory around color long before they read a word.
Strip it out with a blanket filter: invert() and you've traded
eye strain for disorientation.
Violet body contrast 12.6 : 1 WCAG AA
Pick a lens on the left. The ring at the top turns the extension off — so does the TintLens button in the toolbar, exactly where it sits in Safari.
Ink, Graphite, Ocean, Indigo, Violet, Orchid, Crimson, Ember, Amber, Moss, Forest, Teal — then Paper, Sepia, Solar and Mist for the hours when black is the harder read.
TintLens rewrites color at the stylesheet level, so a page keeps its own visual hierarchy — headings still read as headings, links still read as links.
Twelve dark themes covering the whole hue circle, plus four light ones tuned for reading — not four brightness steps of the same grey.
Eight color slots and four engine parameters, with live preview on the page you're actually reading. Name it, save it, use it everywhere.
Every domain remembers its own on/off state, theme and parameters. One site in Sepia, another in Ocean, the rest on your default.
Body text stays at 4.5:1 and large text at 3:1, measured against the page as it renders. Turn the floor off in advanced settings if you disagree.
Export any theme as a short share code or a .tintlens file. Paste it, import it, done — no account, no server in the middle.
Settings and custom themes follow your Apple account across Mac, iPad and iPhone. Your library is intact on a new device.
Most color inversions leave secondary text sitting at 2:1 against the background — legible on a bright desk, invisible at night. TintLens measures every text role and lifts whatever falls short.
Secondary text, captions and disabled states all collapse toward the background, because a blanket filter has no idea which of these you were meant to read. Links fare worst.
Every text role is checked against its own background and lifted until it clears the floor. Hierarchy survives — muted text stays muted, it just stays readable. Links keep their accent.
One purchase covers Mac, iPad and iPhone. No subscription, no upsell, no ads, no analytics — the price on the App Store is the whole story.
Coming to the App Store. macOS 13 or later · iOS & iPadOS 16 or later.
TintLens does all of its work on your device.
It needs access to web pages in order to read the colors a page already uses and override them — the content of those pages is neither stored nor transmitted.
Your settings and custom themes live only on your device and in your own iCloud account. No analytics SDK, no advertising SDK, no server.
The engine rewrites colors once per stylesheet and caches the result per site, so the cost lands on the first visit to a domain and effectively disappears after that. It does not re-run on scroll, and it does not inject a full-page filter.
It reads pages in order to recolor them, on your device, in the moment. Nothing about the pages you visit is stored, logged or sent anywhere — there is no backend to send it to. See the privacy policy for the full statement.
TintLens detects a site's own dark mode and stays out of the way by default. If you'd rather have your theme everywhere, turn on Ignore Built-In for that site and it takes over.
Not after the first visit to a site. The background color is applied before the document is parsed, and the per-site color map is cached — so a return visit to the same origin paints in your theme from the first frame.
macOS 13 or later, and iOS / iPadOS 16 or later. It's a Safari Web Extension, so it runs inside Safari rather than replacing it, and it works on the iPhone and iPad too.
Yes — that's the point. The editor exposes eight color slots and the engine
parameters behind them, with a live preview. Solarized, Nord, Gruvbox or something
nobody's made yet: build it once, then share it as a code or a
.tintlens file.