Been there, done that. Then dropped dark mode entirely. Strong filtering of blue light (use redshift or whatever your OS provides) beats dark theme IMHO, without the downsides.
Dark mode is great, but better to leave the site with low or no style and to apply personal styling preference in the browser via Dark Reader or Stylus extension.
Some sites (and something I did while refactoring my portfolio) is levarage that to CSS. You can set is as to read the light/dark mode setting from the OS and provide a "toggle" to let the user choose between light and dark. This doesn't even need JS, just a couple hidden `<input type="radio">`s and some bits of CSS.
Although as I've said in another comment, things like this, "go to the top" buttons, cookie banners and the like should be task of the web browser, not of the website.
It would be extremely simple to add dark mode. We're talking about CSS changes here. Instead of having to rely on random extensions being installed everywhere you browse, it could just do what you want from your preferences.
I really like Harmonic, but there's other features from Materialistic that I miss:
- ability to switch back and forth from the article to the comments (in harmonic you have to scroll up or use a second app as browser)
- ability to see the comment you're replying to
- per-comment menu without long-press
- draft comments (pause editing and save the comment to continue later...if you can remember where it was)
Why does every HN app re-implement bookmarks? Why can't they just save them to the HN website? Sure, you'd maybe need to fetch the static page from HN itself instead of using the API, and parse it for the favorite link to get the URL necessary, but it should be fairly simple regardless of whatever other changes are made (the link text is favorite, it's probably the first occurrence of a link with that text and has predictable URL format)
This time, iOS 26 adds the ability to create a shortcut to the Home Screen as a web app, which definitely needs a dark mode. It appears that none of the extensions are loaded
Stylus extension with Catpuccin theme for HN. Stylus has a bunch of other themes available too. For other websites too.
IDK if I trust the proxy websites people are posting in other comments. And they're not comfortable to use with RSS feeds.
It has the extra benefit of only showing 60 latest HN items in 2 pages of 30, which helps me not spend too much time on HN going down interesting rabbit holes.
Yep, I usually have it setup to whitelist mode, most pages will open normally, but if I want to read some long text and prefer it to be on dark mode, I activate it only for that page.
https://apps.apple.com/us/app/noir-dark-mode-for-safari/id15...
Although as I've said in another comment, things like this, "go to the top" buttons, cookie banners and the like should be task of the web browser, not of the website.
Being self sufficient is a superpower that should be encouraged on the web. Change colors, fix formatting, remove ads! Power to the user!
On the laptop: Modern HN (https://www.modernhn.com) for Firefox. Not fond of the phoning home to firebase and extensionpay.
On the GrapheneOS Pixel: Harmonic (https://github.com/SimonHalvdansson/Harmonic-HN)
Why does every HN app re-implement bookmarks? Why can't they just save them to the HN website? Sure, you'd maybe need to fetch the static page from HN itself instead of using the API, and parse it for the favorite link to get the URL necessary, but it should be fairly simple regardless of whatever other changes are made (the link text is favorite, it's probably the first occurrence of a link with that text and has predictable URL format)
Dred's HN CSS Madhackery -- Dark Mode: <https://pastebin.com/6PF3dCXH>
You'll also find there my standard "light mode" styling which is how I typically browse the site.
I'm using Dark Reader since a long time now, but more and more often disabling it for some sites supporting HTML relatively recent additions.
Well supported by all mainstream browsers:
https://developer.mozilla.org/en-US/docs/Web/CSS/color_value...
I'm developing a system to pass arbitrary condiments.
html {background: #000;} body {filter: invert(.95) hue-rotate(12deg);}
https://chromewebstore.google.com/detail/stylus/clngdbkpkpee...
It has the extra benefit of only showing 60 latest HN items in 2 pages of 30, which helps me not spend too much time on HN going down interesting rabbit holes.
EDIT: now I know there is max 35 pages of HN