Ask HN: Dark mode for HN please? (2026)

The 2020 thread does a lot: https://news.ycombinator.com/item?id=23197966

It shows 100 solutions in light of Parkinson’s Law of Triviality. Intense opinions and discussion.

It teaches about alligator energy and how they can live without food for up to two years.

It teaches that this site should look like top, yet I’ve rarely seen top on a white terminal in the past two decades. This does exist, nofi.

Workarounds exist, and those are “mid” janky shit shows. One I tried was an iOS app. It flashes the page between light and dark on every click. Aside from not being a solution, it’s nausea-inducing, takes 20+ steps to install, requires you to blindly trust the app without a Git repo, and requires you to change your OS. It shows that running 20 miles to solve this is what people do to get to any promise of a solution. So many of these exist that it’s just a swamp of well intended nightmares making the problem worse.

HN is filled with love for fonts, styling, terminal themes, CSS madness, and quirks. Yet here I am with empty hands and little karma, with a screen that burns into my eyes at night. The last bastion of light, in more ways than intended.

As with the resolution to PHP’s sleep(), going with something that keeps things running unchanged for those who don’t move, but tailoring it further for those who want it, I’d opt for two extremes for logged-in users:

A: Adding a custom CSS styling text area, allowing for maximized creativity, experimentation, hacking, and freedom, and supporting any matter of taste and necessity. It is just fun, and this might be shut down due to arguments about security, bloat, resetting mistakes, and such. But it’s still the most fun and expressive option.

B: Having a drop-down setting for some styles, where just inverting the whole site with two lines of CSS using `filter: invert()` works for me, or choosing whatever theme is agreed upon somewhere. We have millions of dollars’ worth of CSS talent on this site and similar amounts of LLM investment to get something tasteful, respectful, well thought out, and just great. Make it a contest. Hurt me plenty.

This is not a dilemma, but I hope to inspire a move toward a native solution so I can read HN at night without the abracadabra of altering my OS, browser, trust, or, well, anything outside this site.

I’m also fine with no solution to this if the answer is: You should not read HN at night for a better and healthier life. Then add that to HN policy. I didn’t find that.

Sorry for bringing this up again.

20 points | by Stitch4223 17 hours ago

6 comments

  • Bender 17 hours ago
    I think the easiest option for now will have to be this [1] assuming one already has uBlock Origin. Adjust as desired.

    [1] - https://news.ycombinator.com/item?id=49686631

    • dlcarrier 10 hours ago
      Here's a high-contrast one, for those who find higher contrast easier to read, or otherwise prefer it.

          # HN dark Mode:
          news.ycombinator.com##body:style(background: black)
          news.ycombinator.com##td:style(color: #ffffff !important)
          news.ycombinator.com##table:style(background-color: #000000)
          news.ycombinator.com##div.toptext:style(color: #ffffff)
          news.ycombinator.com##div.c00:style(color: #ffffff !important)
          news.ycombinator.com##a:style(color: #ffa000 !important)
          news.ycombinator.com##span#karma:style(color: #faa000 !important)
          news.ycombinator.com##span.pagetop:style(color: #ffffff !important)
          news.ycombinator.com##textarea:style(color: #ffffff !important; background: inherit; )
          news.ycombinator.com###hnmain:style(background: #000000 !important)
  • leoprctmp 16 hours ago
    I wrote a simple Tampermonkey script:

    (function() { 'use strict';

        // Background Color
        let el = document.querySelector("#hnmain")
        el.style.backgroundColor = "#1A1B16"
        el.style.color = "lightgrey"
        document.querySelector("body").style.backgroundColor = "#1A1B16"
    
        // Font Color
        document.querySelectorAll("a").forEach(one => { one.style.color = "lightgrey" })
        document.querySelectorAll(".c00").forEach(one => { one.style.color = "lightgrey" })
    })();
  • OsrsNeedsf2P 17 hours ago
    Darkreader
    • Stitch4223 10 hours ago
      Thanks for the suggestion.

      Just bought and installed it as an iOS extension :) All themes and all custom themes remove the upvote button. Does it do the same for you?

      • runjake 2 hours ago
        Not OP, but I use DarkReader and Noir and it doesn't remove/hide the upvote button for me on either. I do have color filters enabled in accessibility on iOS, though.
  • novia 16 hours ago
    you can modify chrome flags to force sites into dark mode
    • john01dav 16 hours ago
      I have found that Dark Reader works much better than this.

      (I use Firefox generally, but my employer forces Chrome for many work tasks, and is also very concerned about data security from 3rd party extensions, so Dark Reader is not readily accessible. I use Dark Reader with Firefox at home, and find that it much more frequently has a reasonable result. Another issue with teh Chrome flag is that it is inconvenient to toggle when encountering such a broken website, or when you want light mode.)

  • abstractspoon 12 hours ago
    Try Harmonic
  • neha_n 3 hours ago
    [flagged]