16 themes · Safari extension for macOS & iOS

Every site, through your lens.

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.

Download for Safari See the themes One-time purchase · no subscription · no account
Violet
ArticlesTopicsArchiveAbout
Subscribe
Interface

The quiet case for color

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.

A theme you can't read isn't a theme. It's a mood.
Fig. 1 — hue circle
Contrast floor Body text stays at 4.5:1 or better, checked against the page as it renders.
#design#a11y#browsers

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.

Twelve darks around the circle.
Four lights for long reading.

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.

A color engine, not a filter.

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.

16 built-in themes

Twelve dark themes covering the whole hue circle, plus four light ones tuned for reading — not four brightness steps of the same grey.

A real theme editor

Eight color slots and four engine parameters, with live preview on the page you're actually reading. Name it, save it, use it everywhere.

Per-site configuration

Every domain remembers its own on/off state, theme and parameters. One site in Sepia, another in Ocean, the rest on your default.

WCAG AA, enforced

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.

Share a theme

Export any theme as a short share code or a .tintlens file. Paste it, import it, done — no account, no server in the middle.

iCloud sync

Settings and custom themes follow your Apple account across Mac, iPad and iPhone. Your library is intact on a new device.

Dark is easy. Readable is the work.

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.

Typical inversion 2.1 : 1

The shape of a paragraph

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.

TintLens · Violet 12.6 : 1

The shape of a paragraph

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.

Buy it once.

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.

There is no server to send anything to.

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.

No tracking, no analytics
No account to create
No browsing data collected

Before you install.

Will it slow pages down?

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.

Does it see what I browse?

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.

What about sites that already have a dark mode?

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.

Will pages flash white while loading?

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.

Which systems does it support?

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.

Can I make my own theme?

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.