about:addons -> uBlock -> Preferences -> My Filters, then add
## HN Color
news.ycombinator.com##html:style(background-color: #080808 !important)
news.ycombinator.com###hnmain:style(background-color: #121216 !important)
news.ycombinator.com##.age:style(color: #ccc !important)
news.ycombinator.com##.c00:style(color: #ccc !important)
news.ycombinator.com##.comhead > a:style(color: #dedede !important)
news.ycombinator.com##.comhead:style(color: #dedede !important)
news.ycombinator.com##.hnuser:style(color: #ccc !important)
news.ycombinator.com##.subtext > a:link:style(color: #ccc !important)
news.ycombinator.com##.subtext > a:style(color: #ccc !important)
news.ycombinator.com##.subtext:style(color: #ccc !important)
news.ycombinator.com##.title > a:style(color: ccc !important; background-color: #000000 !important)
news.ycombinator.com##a:link:style(color: #bdbdbd !important)
news.ycombinator.com##a:visited:style(color: #adadad !important)
news.ycombinator.com##a:hover:style(color: #fd0000 !important; background-color: #000855 !important)
Then adjust it however you like it.[1] - https://addons.mozilla.org/en-US/firefox/addon/ublock-origin...
Browsers have the alternate name "user agents" for a reason, they are ultimately intended to be working for you, the user.
Therefore, simply adjust your "user agent" (browser) to give you a dark mode, and you will have a dark mode, without needing or waiting for HN to change anything.
The comment from @LinuxBender here shows you one way to do so using uBlock Origin.
I'd love to be proved wrong though.
(function hackerNewsDarkMode() {
let bg = '#35352B';
let fg = '#EEEED1';
let tables = document.getElementsByTagName('table');
for (let i=0; i<tables.length; i += 1) {
tables[i].style.backgroundColor = bg;
tables[i].style.color = fg;
}
let codes = document.getElementsByTagName('code');
for (let i=0; i<codes.length; i += 1) {
codes[i].style.backgroundColor = '#300000';
codes[i].style.color = '#FF0000';
}
let spans = document.getElementsByTagName('span');
for (let i=0; i<spans.length; i += 1) {
spans[i].style.backgroundColor = bg;
spans[i].style.color = fg;
}
let a = document.getElementsByTagName('a');
for (let i=0; i<a.length; i += 1) {
a[i].style.backgroundColor = bg;
a[i].style.color = '#66CDAA';
}
let divs = document.getElementsByTagName('div');
for (let i=0; i<divs.length; i += 1) {
divs[i].style.backgroundColor = bg;
divs[i].style.color = '#FFC0CB';
}
let textAreas = document.getElementsByTagName('textarea');
for (let i=0; i<textAreas.length; i += 1) {
textAreas[i].style.backgroundColor = "#000000";
textAreas[i].style.color = fg;
}
document.body.style.backgroundColor = '#000000';
document.body.style.color = '#FFFFFF';
}());If that’s too tedious for you: Settings - Control Center - add Accessibility Shortcuts, and follow the instructions to add Smart Invert.
If that’s too tedious for you, go into Settings - Accessibility - Touch - enable Touch Accomodations and set double or triple tap to Smart Invert.
You now have HN dark mode.
Then you can write custom CSS (and JS) to tweak any site, and don't need to beg the webmaster.
html {filter:invert(.9) contrast(90%);}On Android, one can set this as a pulldown chip.