5 items
Dark mode that uses each site's own dark theme when it has one. Fast, non-breaking, private. Unlimited sites, free. Most dark mode extensions were designed for a web that no longer exists. They assume every site is light, and re-colour it. But a huge share of the sites you actually use — code hosts, forums, documentation, encyclopedias, social apps — already ship a real dark theme, designed by an actual human being. Every other extension throws that away and substitutes an algorithm. Duskly checks first. ━━━ HOW IT WORKS ━━━ NATIVE — If the site already has a dark theme, Duskly makes the site show its own. Nothing is re-coloured. It is faster, it looks the way the designers intended, and it cannot break the layout, because Duskly is barely doing anything. ADAPTIVE — If the site has no dark theme, Duskly re-colours it carefully. Hues are preserved, so brand colours stay recognisable. Images and video are never touched. Anything already dark is left exactly as it is. OFF — Turn Duskly off for a site and no Duskly code is injected on that page at all. Not a script that decides to do nothing. Nothing. Duskly decides between Native and Adaptive by measuring whether the page actually went dark — not by guessing from a list. You can override it per site whenever you disagree. ━━━ WHY IT STAYS FAST ━━━ Duskly reads colours from a page's stylesheets once, rather than continuously inspecting every element on the page. The work it does is bounded by how many CSS rules a page has, not by how big the page is or how long you have been browsing. Every watcher it starts has a stopping condition. The practical result: Duskly is exactly as fast on day 200 as it was on day 1. ━━━ WHAT IT WILL NOT DO ━━━ • It will not apply a filter to the page root, so sticky headers and floating buttons keep working. • It will not invert your images or hue-rotate brand colours into mud. • It will not re-colour something that was already dark. • It will not make a single network request. There is no analytics, no telemetry, no account, and nothing to sign up for. ━━━ READABLE BY DESIGN ━━━ Any text colour Duskly renders is lifted, with its hue intact, until it meets WCAG AA contrast against the surface behind it. All four palettes meet WCAG AAA for body text and links. A dark mode tool that produces unreadable text has failed at its own job. ━━━ COMFORT ━━━ Four palettes, all free: • Midnight — soft black, the comfortable default • Carbon — true black, so OLED pixels actually switch off • Slate — cool grey, easiest for long reading sessions • Sepia Night — warm dark, gentle late at night Plus brightness, warmth (blue-light reduction) and contrast, applied as a non-interactive overlay so they cannot break the page. Schedule it to follow your system theme, run evenings only, or use your own hours. ━━━ 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 ━━━ FREE MEANS FREE ━━━ Unlimited sites. All four palettes. Every feature. No account, no ads, no tracking, no site limit, no trial that expires. A paid version may exist one day. If it does, it will only ever add new things. Nothing you have today will ever be moved behind a paywall. ━━━ PERMISSIONS ━━━ Duskly asks for the minimum it can function with, and explains each one: • Storage — to remember your settings and per-site rules, on this device only. • Scripting — to inject Duskly ONLY on sites where you have it switched on. This is what makes "off" actually mean off. • Alarms — to check, every few minutes, whether your schedule says it should be on. • Access to websites — because theming the site you are reading is the entire product. Duskly reads colour values in order to change them. It never reads page text, form input, passwords, cookies or history, and it has no way to send anything anywhere. Duskly is open source. The code in this package is byte-identical to the code in the repository — there is no build step, no minification and no bundler, so you can read exactly what runs. Source code: https://github.com/ownCoder/duskly Privacy policy: https://owncoder.github.io/duskly/privacy.html
Aug 21, 2026
rating_count is the Chrome Web Store ratings count, not a written-review count.
Media assets
Screenshots and videos on the listing.
Has promo video
Whether the listing includes at least one video.
Languages
Declared language locales.
Developer website
Listing exposes a developer website URL.
Contact email
Listing exposes a contact email.
Keyword in name
Case-insensitive substring match in the name.
Keyword in description
Case-insensitive substring match in the description.
Keyword occurrences in description
Count of case-insensitive occurrences in the description.
Category user-count percentile
Share of same-category extensions with fewer users (null if unknown).
These are transparent listing completeness / keyword signals, not a prediction of Chrome Web Store search ranking.