Every site, at its best in the dark.
Dark mode that checks whether the site already has one.
Most of the web already ships a real dark theme, built by a designer. Every other dark mode extension throws that away and substitutes an algorithm. Duskly uses it.
Native
The site has its own dark theme, so Duskly makes it show that. Faster, better looking, and impossible to break — the site's designers did the work.
Adaptive
No dark theme? Duskly re-colours the page carefully. Hues are preserved, images are untouched, and anything already dark is left alone.
Off
Switch a site off and no Duskly code is injected on that page at all. Not a script that decides to do nothing. Nothing.
What makes it different
- It uses the site's own dark theme. No other shipping extension does this.
- It doesn't get slower. Colours are read once from the stylesheets, not continuously from every element on the page. Every watcher has a stopping condition. Day 200 costs what day 1 cost.
- It doesn't break layout. Duskly never applies a filter to the page root, so sticky headers and floating buttons keep working. Only colour properties are written.
- It keeps your colours. Hue is preserved exactly. Images and video are never touched.
- Text stays readable. Any text colour Duskly renders is lifted, hue intact, until it clears WCAG AA contrast.
- It makes zero network requests. No telemetry, no account, no server — enforced by the build script and the test suite, not merely promised.
- Free means free. Unlimited sites, all four palettes, permanently.
Four palettes
| Palette | For |
|---|---|
| Midnight | Soft black. The comfortable default — pure black on an LCD actually raises eye strain. |
| Carbon | True black, so OLED pixels switch off entirely. |
| Slate | Cool grey. Lower absolute contrast for long reading sessions. |
| Sepia Night | Warm dark. Reduces short-wavelength output at the palette level. |
All four meet WCAG AAA contrast for body text and links, verified by an automated test.
Honest limitations
Every product page should have this section.
- A browser extension cannot change how the browser evaluates a CSS media query. Sites that gate their dark theme purely in CSS, with no JavaScript involved, fall through to Tier 2. Coverage is best on modern JavaScript-driven sites.
- Tier 2 will never be pixel-perfect on every website. No algorithmic re-colouring can be. That is why the per-site off switch is one keystroke and is remembered.
- Gradients and background images are not re-coloured yet.
- There is no cross-device sync, because sync would mean sending your data somewhere. Export and import cover the manual case.
Keyboard
Alt+Shift+D | Turn Duskly on or off everywhere |
Alt+Shift+S | Turn Duskly on or off for this site |
Both are re-bindable at chrome://extensions/shortcuts.