One minuscule whimsical semi-irony here is that for this task (re-styling any web-page whatsoever, while lowering the number of add-ons installed) any CSS2-compliant browser needs exactly 0 (zero) add-ons installed: User Stylesheets should be (and somewhere are) supported out of the box..
It is true that this part of specification was never developed to the degree to be really practical, but luckily at least some implementers went ahead and added what was missing: ability to target specific styles with specific chunks. UserCSS grew from this very mechanism.
I'm sure Firefox can do it even today (with one pref flipped), I guess most "good" progressive browsers as well, but last time I checked Chrome-ium chopped it out around 2014, effectively violating few specs [41091633]. They later provided the mechanism for extensions to use (the ability to inject style into cascade on the "user" origin level) but to my knowledge no extension picked it up as of now. (Maybe uBlock, after all?)
Last time I checked, "user" origin stylesheets come before (and so are easily overridden by) "author" origin stylesheets during the cascade, unless the declarations are marked "important". Could that be why userstyle extensions are not picking it up?
Yes, general misunderstanding of the cascade is definitely one of the reasons, sadly. I admit that sharing origin level is sometimes OK, but I think that having control over the level at which we enter the cascade would be even better.
Styles injected into "author" origin layer share context with "page", so are exposed to their scripts, and when we need to beat some author's !important rule, we must make sure we have equal or greater selector specificity, what leads to absurd selectors like `*:not(#a#b#c#d) { border-radius: 0 !important }` with hope that page author will not use matching selector with five IDs.
In regular User Stylesheet any important rule wins over all author rules, regardless their selector specificity and importance. I find this design decision as very elegant and effective distribution of power.
By the way, when styling HN one thing to keep in mind is that HN is rendered in quirks mode [1], so sometimes your CSS rules may not work exactly the way you expect.
[1] As is pg's personal website so I assume this is as intended :)
I've been using a modified¹ version of Rich Infantes uBlock script for Hacker News², it's a little less monochrome than the one from Darek Kay and appeals more to my aesthetic sensibilities.
edit: I took one for the team, using the values from https://ethanschoonover.com/solarized/
I took the liberty to suppress the table background that HN has ( I don't like that element of the original HN style )