Comment by dang
5 years ago
Ok, you guys, this isn't the first time we've heard this request (https://news.ycombinator.com/item?id=16442716
5 years ago
Ok, you guys, this isn't the first time we've heard this request (https://news.ycombinator.com/item?id=16442716
Please, for God's sake, don't screw it up. I can keep up with news on this site from a 15 kb/s shared satellite link when I'm out at sea. Except perhaps for the really big threads. I love the simple interface. It's text, it's simple, it's readable, and when I hit the spacebar, it scrolls down a page. No fancy fonts, no javascript, no nothing. I love HN for its simplicity and speed. Thanks for maintaining a good engineering philosophy.
I'm on board with ceasing and desisting from screwing it up.
Thank you dang, you've been an amazing steward for this community and the technology that powers it.
Keeping something the way it is, is super hard in tons of ways a lot of us probably don't understand. We appreciate you.
Can we have a review before we merge the change? Make sure all issues are ironed out.
HN design is simply the best thing out there. "Moving slowly and preserving things" - I would get this engraved on my grave. This philosophy has died unfortunately and with it went robustness, simplicity, elegance, poise, beauty, accessibility, elegance, maintainability and practicality.
Thanks dang for your gandalf-like wisdom and your resilience. I like Alligators over goddamn mosquitos that have taken over the internet.
6 replies →
There are many ways for end users to force dark mode without any change on HN. "invert page colors" chrome extension, for example, does a nice job. Not ideal, but good enough.
I second the other commenter, don't do anything. Or get someone really good to help you!
13 replies →
An alternative is to "opt-in" sort of how you can change the top bar color with enough Karma. Maybe that CSS is not loaded for people who dont have that same Karma? I assume people asking for the feature post often enough.
Edit:
To clarify what I mean is maybe toggling which style sheet HN gives you in settings would be ideal for all. Web standards are nice but they dont help in the minimalist ideals of HN too much.
3 replies →
What browser support do you expect?
https://caniuse.com/#search=css%20variables
https://stackoverflow.com/questions/44271920/css-variables-w...
Also, not only should "dark mode" be the responsibility of the browser, it already is. There's plenty of plugins that do this and people that want it should use them.
(http://i.9ol.es/dark.png)
7 replies →
People can edit HN CSS with extensions. There is actually an extension that inject CSS into websites. So you can do that.
3 replies →
I screw up ceasing and desisting all the time :-(
1 reply →
Indeed, HN is one of the few sites that works well in Antarctica.
Well, if we want HN to follow best modern web practices, I recommend rewriting the whole thing with React/Node.js using TypeScript. Then, we can get a proper CSS framework in place like Material that will really allow us to get everything looking really good. I can design a cool looking loading screen that says "HN" while the JS is loading in the background.
Blockchain. No one said blockchain yet. We have to blockchain it. Blockchain it with cryptos.
13 replies →
I agree. Currently HN pages load instantly which in these days can be disconcerting.
1 reply →
Aw man that sounds really cool. I bet you’ll only need a team of 5 people to do it too.
What’s the tool chain manager look like for managing the build process manager?
We should probably redeploy it on Kubernetes so the backend can scale, one c5.xlarge instance per session to keep up with the requests.
Well done... I nearly downvoted you from the rage I felt before realising it was sarcasm...
2 replies →
Oh please, React is so yesteryear. With WebAssembly, we can rewrite the HN frontend in Rust! \o/
I think you are jumping the gun. First we need a scrum master and product owner to make this Agile.
Let's rewrite this thing in C and compile it to webassembly!
1 reply →
don't forget to create an electron app for it
cool but what will we do for next month?
I think it should be Vue, what with the patents-clause with React and everything
Hah, HN's load speed actually makes it my go-to bookmark to test if everything is working okay. Internet connectivity lagging? Check HN. My own web app loading slowly? Check HN.
I’m on land in a well populated city relatively near the Bay Area and I get about half a bar on my phone. So yes! Please don’t screw this up! Because not only I like reading HN but also because it’s the only thing I can do on my phone now and it’s really helping me kick all the bad habits of being on my phone!
Thanks!
"No fancy fonts, no javascript, no nothing."
Truthfully, there is some Javascript. For example, onclick(). Voting without Javascript requires some extra effort.
True, but doesn't this even save bandwidth because it doesn't need to reload the whole page just to update that detail? Either way it still works without JS, which can't be said about most modern websites.
3 replies →
> without some extra effort
Thanks for the riddle! I guess you could use iframes?
Edit: Ohhh and you could use data-urls as iframe src, so as not to make a large number of requests.
This is JavaScript done right and worth keeping enabled.
I think you guys overreact a bit, your reply alone occupies more bytes than the CSS needed to implement dark mode; it wouldn't affect anything related to scrolling with space-bar, or fonts, or JS functionality.
True, serving it to you was negligible, but that little extra being served millions of times, once for every request, in aggregate slows down servers, eats up peoples’ data, raises costs and generally quickens the heat death of the universe.
2 replies →
Ha, remember the first time they tried a mobile layout? That was quickly yanked (to much rejoicing). If the dark mode has some issues, we can always go back and try again. The main thing I care about is making sure it's still easy to read (good contrast).
> actually deploys new reddit design on HN like a boss
If they screw it up then I'll personally host some service that scrapes all the text and only dumps a few kbs to you :)
Honestly theres a lot of other sites that would benefit from that too. A well written and maintained scraper for a bunch of popular sites may be worth a subscription for some bandwidth limited people.
5 replies →
For the sake of simplicity, could we just serve up a subdomain darknews.ycombinator.com, same content, just different stylesheet?
When you click on a link to the news.ycombinator.com domain, what should happen if you prefer dark mode? And vice versa?
In comparison, the pure-CSS ideas that some people are posting would work automatically if your browser supports dark mode, and would enlarge the (cached with long ttl) CSS file only very slightly.
3 replies →
I don’t think you’ve properly considered what a terrible idea this is.
3 replies →
That's not simple at all..
Tagline: "Come to the dark site."
How can you keep up with the news when HN only records the headlines and the articles are stored elsewhere, usually on extremely heavyweight news sites?
It'd be like iOS giving us emojis back then when it instead needed innovation. Having said that HN can use some formatting.
Seconded. I'm using a cellular hotspot due to lack of HS options, even here in the outskirts of Austin. KISS.
It even loads fast on my eReader web browser, which is quite rare these days.
Completely agree with you
Screenshot: https://imgur.com/a/mxaNky4
Whipped this up real quick... keeps the spirit of HN I think, and is pretty minimal. Not my best CSS but tables/current CSS make some selectors a little tricky and after all, it's less than 1kb added, no markup or stack changes needed, and this is 'Hacker News' right? :D
@media (prefers-color-scheme: dark) { body { background-color: #1F2430; }
}
Edit: missed a few on other pages! Added arrow CSS patch, added screenshot from imgur, added text input colors for profile and replies.
For those who want something more traditional I've modified to have a slight orange tint on the title bar, and higher contrast for text. Seems to be better for a11y too.
Screenshot: https://imgur.com/a/XW1OCYb
@media (prefers-color-scheme: dark) { body { background-color: #232834; }
}
edit: fixed imgur link and added full css
Thank you, it looks good
I've added this code to fix the reply textarea colour:
.fatitem textarea { background-color: #232834; color: #fafafa; }
1 reply →
Thanks man, I already applied it to my HN using Stylus extension.
Looks great to me!
Looks good!
I prefer it straight black which this minimal CSS does (Screenshot: https://imgur.com/a/2lcy1Ga)
Nice. You can also add a `hue-rotate(180deg)` to somewhat preserve colors and add `img` to invert images back to normal again.
I have this as a bookmark and work well in many cases.
I applied a few of the suggested code blocks in this thread, and this is the one I liked the best.
Lot's of interesting discussion going on. Since I can't update comments here I've made it a gist with warm.css and cool.css.
For those of you asking, feel free to do whatever you want with this CSS ^_^
https://gist.github.com/deleerium/ca6ddeed5dc07a81f764a83ecd...
Love this. One addition, consider reducing the brightness on text so it doesn't glare as much.
Please don't. Strong contrast helps readability; grey-on-color is lower contrast than white-on-color.
Most HN threads linking to a site that has light-grey-on-dark-grey or dark-grey-on-light-grey text have at least one (off-topic) complaint about site style. Let's not make HN one of those sites.
13 replies →
I agree, that level of white usually gives me eye strain after several minutes, even in a well lit room. The readability mode of Firefox for example uses #eeeeee for the text and #333333 for the background [1], I'd suggest using the same tones which are still very high contrast but don't cause nearly as much strain.
[1]: https://www.theregister.co.uk/2019/07/10/firefox_68_arrives_...
Tricky balance there. I was going for good contrast even when screen is dimmed or color shifted (think night modes, f.lux, etc.
Maybe try to swap the #fafafa rule with #eaeaea? Does that feel better? It's still very high contrast so maybe that could be a happy medium.
looks good!
to preview, folks can live edit this page in inspector and paste these styles into a style tag.
in firefox, F12 to open inspector, hit '+' in the style pane to insert a <style> tag (but don't add a rule), then right click the inserted tag in the inspector pane and "edit as html" to edit the html, and finally paste these styles inside the tag and click out of it.
Yes there is much better way. Install Stylus plugin and copy and paste the same script (except meta tag) with rule on domain. And it just works fine across all instances of domain.
Thanks for this. This is the best dark mode skin i found yet.
Can I create stylus theme out of this share it?
Yea of course it's just CSS :D
Is there an easy way I can apply this using developer console so I can see what it looks like?
I want to try out the different styles in the comments, but I'm hesitant to upvote until I see for myself what it looks like.
stylus extension let you write styles per sites. there's also a centralized place to find already written styles. I use https://userstyles.org/styles/161954/hackernews-one-dark
1 reply →
I also added a screenshot if that is easier - https://imgur.com/a/mxaNky4
View source, add a style tag to the header after the official styles, select the tag and use f2 to edit as text, paste the styles in.
I just right clicked a few pages -> Save page as (static HTML/CSS/etc) then hack on the end of the news.css file. You can just append my css to that and you'll see exactly what I saw :)
You could add it to your user stylesheet?
1 reply →
I'm late to this party, but this is fantastic. I've popped it into the Firefox Stylus addon. Consider me a happy user. Thanks so much!
This is really nice, discreet and readable. Good job!
wow, I usually hate dark modes but I like this better than the current HN!
This one, please
I have some styles I use. Screenshots:
https://imgur.com/a/WZAaJST
I don't love when dark modes skew blue, so tried to keep it neutral with blacks and greys
``` @media (prefers-color-scheme:dark) { body { background-color: #2a2b2e; } #hnmain { background-color: rgb(32, 33, 36); }
} ```
Please have a look. I shut my windows and turned off the light for this exercise. Just added a tick more warmth. https://imgur.com/a/t1aQaDv
(Notice how beautiful regular this hexes are looking.)
Source for a CSS simlpe arrow https://css-tricks.com/snippets/css/css-triangle/
This is nice!
The colors here on HN skew warm. Was wondering if anyone felt that way.
I like this scheme quite a bit. The white text on the orange bar is the only part I struggle with.
Why do you prefer neutral schemes?
Looks awesome!
One-liner inverts the brightness and preserves the orange.
This surprisingly works well. One thing, the background of body is still white for me on desktop this is what I have (combine with someone else who commented about the brightness):
Edit, also works on hn.algolia.com
> the background of body is still white for me
Had the same problem, changed "body" to "html", added background: #fff, now it works.
I turned it into a bookmarklet to make it easy to use on any website:
javascript:styles='html {filter: invert(1) hue-rotate(180deg) brightness(.9); background-color: #fff; }'; newSS = document.createElement('style'); newSS.type = 'text/css'; newSS.innerHTML = styles; document.documentElement.getElementsByTagName('head')[0].appendChild(newSS);void(0);
1 reply →
Unfortunately the colors are a bit too bright for the dark page.
append brightness(.9) to the end of the filter
This is the hacker-est option, I love it. So simple
minimal CSS to add (nothing to remove):
https://pastebin.com/4JYbSi5F
[edit]: fixed, shorter version: https://pastebin.com/dT4KKt3s
[edit 2: fixed textarea, dead links: https://pastebin.com/CKy4HQXE ]
[edit 3: added a screenshot: https://imgur.com/a/Ont553x ]
I wonder if removing the whitespace on the original, while adding this, would give us a net filesize modification of 0
Most likely! Then again, modern CSS is pretty awesome. Not flawless, but so much better than 10 years ago.
I'll check this thread but also feel free to email me zain@yc for more feedback - just add [HN FEEDBACK] in the subject :-)
don't worry, we'll make sure we don't pull a reddit on you ;)
> don't worry, we'll make sure we don't pull a reddit on you ;)
As a shareholder of reddit, that hurts.
As a user of reddit and HN, thank you, I couldn't agree more.
I replied to the top post, but just in case, here is my idea
It uses prefers-color-scheme and 28 lines of CSS:
https://pastebin.com/4JYbSi5F
And just in case 28 was too much, here's an improved version in 10 lines of CSS:
https://pastebin.com/dT4KKt3s
> we'll make sure we don't pull a reddit on you
From all of my heart: Thank you!
You can look at UserStyles.org for inspiration. They have many user created Hacker News dark mode themes available there: https://userstyles.org/styles/browse?search_terms=hacker%20n...
Append this to news.css;
Inverted most colours (ff - 5a = a5).
#eee for text colour.
#000 for bg (body, #hnmain)
#hnmain's background is set with an HTML attribute, !important might be necessary for some browsers? Not sure, but works on my machine(tm).
Edit: s/html/body/, wasn't necessary to select on <html>. Split body and #hnmain selectors.
Tested thoroughly on threads and the front-page, some notes:
Upvote arrows blend with white instead of transparent, giving a weird look.
The orange goes well with black.
Not all users might want #000, but for OLEDs it's gorgeous.
The @media selector requires a OS/Browser support, to extend that a simple way is programatically add a .dark class to <body> (edit: based on a checkbox in their profile), and add selectors with .dark.
Some colours on the site are hardcoded, like the orange asterisk on your own comments, and newbie green. They both go fine with #000 imo.
Edit: tested on the other pages, looks good imo. Login/logout don't have CSS, which'd be a bit jarring.
It's a bit sad there's no distinction between the #hnmain and the background anymore, I think if that were desirable I'd probably change <body> to #111 or so.
Blending the upvote arrow is fixed with filter:invert(1), as in my solution[1]
1. https://0x0.st/iLYb.txt
1 reply →
Did you try my latest solution?
https://pastebin.com/CKy4HQXE [I'm not parent]
let me know what you think ;D
2 replies →
I've been using a "Hacker News Dark" userstyle [1] with Stylus for years, it's only ~30 lines of CSS with a permissive license (CC0). I'd love to see something like it integrated into HN itself.
It'd also be nice to have a way to enable the dark theme without logging in, alongside a persistent setting for logged-in users. A link in the header/footer to set a cookie is probably the simplest way to accomplish that.
[1]: https://userstyles.org/styles/113994/hacker-news-dark
Small request while you're at it: preformatted/code blocks don't display well on smartphones in portrait mode, as there's too much margin at the sides and scrolling becomes awkward. You can test it here:
Update: turns out that the margins problem also exists on desktop, but the problem doesn't cause as much problems there.
Alligator energy.
I hadn’t heard this term before, and just read that an alligator can store up to 60% of the energy it gets from food as fat, mostly stored in the tail.
A large adult in average condition could survive two years or more without food!
https://books.google.com/books/about/Alligators.html?id=0UDL...
This ability might have helped them survive the KT extinction, when food was scarce.
My version looks like this: https://imgur.com/a/KCHi5mO
CSS:
@media (prefers-color-scheme: dark) { body { color:#cccccc; background-color: black } center>table { background-color: #222222;} td { color:#cccccc; } .admin td { color:white; } .subtext td { color:white; }
}
Perhaps it would be an idea if we could add our own CSS in a textarea on our user page.
Please, don't just force a dark mode to everyone with "prefers-color-scheme: dark".
Some are using OS in light mode, but would still like to use the dark mode. Sometimes, it might be useful to use the light version on dark systems. (e.g. if the dark css is not well made or looks bad on some monitors)
Here's a good thread about it: https://twitter.com/SaraSoueidan/status/1245722023361380354
This should be a browser option, not a website option.
If your browser tells the website you want a dark version, you’re getting a dark version. Seems right, doesn’t it?
What if I want only HN to be dark? Can I configure it per site yet?
I have no issues with 3 options:
- Use browser
- Light
- Dark
Though. I think it’s too much configuration though.
I feel like this should be a browser feature: toggle light / darkmode for a given site. Maybe you dont agree with their interpretation of darkmode...
I agree. I think the default behaviour is good. prefers-color-scheme: dark should be the default, but be changeable browser wide (not sure if this is already the case) or per domain - just as it works with webcam access (storing the permission to view webcam for a given domain).
I get it, but at the end of the day it's up to a site owner, surely? Much like we get to choose our site design, we also get to choose whether it's dark or light. It has always been this way.
The CSS property is a good indicator that you prefer a dark color scheme. In my case by turning this on I want an all dark UI on everything I use - all the time. Do we really need to force toggles on every website we build now for a small number of users who want a dark browser UI, but light websites? I'd prefer to go with the assumption that they want the design dark too.
I agree. Browser-builders should provide a way to configure the wants-dark-mode css query.
Here's a version based on the one by ldd. Unlike the others I've seen posted, it maintains the original contrast, the orange header, and doesn't make the upvote button ugly.
https://0x0.st/iLYb.txt
EDIT: one problem. The header image on pages like[1] doesn't look good. Can you change the white background to transparency?
https://news.ycombinator.com/newsfaq.html
awesome! yeah, the first couple of versions I posted had issues with dead links, and textareas.
Anyways, if @dang permits, we can start a github repo for this, until all the little issues are fixed. I just hope he sees that all of this can be done in just a few lines of code
Make a website that loads HN with a specific theme.
Are you ok with using CSS variables? Without them or some preprocessor, a dark theme would mean a lot of repeated selectors. https://caniuse.com/#feat=css-variables
I have run an HN clone for China's Linux hacker community, we use dark & green color and it's pretty cool in my view, you can check the page archive here: https://web.archive.org/web/20170905074904/http://hack.fdzh....
The source code: https://github.com/fdzh/anarki/commit/5a58ef38111215258a2694...
BTW, I would recommend using Eigengrau rather than total black. https://twitter.com/AustinTByrd/status/1105822085362925568
Anyone who wants to make a suggestion is welcome to.
I'm not a programmer, so I'm probably saying something incredibly, fantastically stupid. Take this in the spirit of "Brainstorming" where you say even the stupid stuff because that sometimes leads to good things.
I am not a programmer, but I do know some HTML and CSS and studied it a bit and Blogger (aka Blogspot) let's you dig in the code of the theme if you want, but it also has a user-friendly section where you can change colors and stuff and it let's you "add CSS" there and I do add CSS snippets there to tweak my websites.
I have tried digging in the code a few times. It's never worked for me. But adding CSS snippets is something I can handle.
You already have a feature to select your top bar color. Would it be feasible to expand that feature a little to let people select dark mode colors? (Ie to change more colors than just the top bar.)
I don't think it's a good idea for HN to add this (a lot of work and potential downsides, for minimal returns), however you can do it using this extension!
https://chrome.google.com/webstore/detail/witchcraft-jscss-i...
I use it for a bunch of minor HN mods already, and it's great :)
Extensions don't work when you have a lot of different devices. I think I access HN with maybe ~5-10 different devices.
Being able to add some custom user definable CSS visible just for you on HN sounds like a great idea to me.
My in-house tech support is opposed to me using browser extensions. I don't understand them and have never used them. I tried briefly to get one to work, then found out my tech support frowns on such, so I was happy to call it quits.
I have no plans at this time to go to a third party service for this or add an extension. Though I have been thinking since I wrote the above of changing my top bar color.
I'm fine with HN moving slow and preserving things. That works for me. But the only way I will go to dark mode on HN is if it is possible to somehow do that through HN.
Maybe someday I will change my mind about that. But not today.
Extensions do not really work on mobile, unless you go out of your way to find something that supports them.
1 reply →
Right now, the profile has a single property "topcolor" where you can slightly customize HN. It seems that this could easily be extended with a few more similar properties, suitable values of which could produce a darkmode.
I'd love to do that just by offering people a CSS blob that we could inject into their CSS when they browse HN. Our original idea (actually kogir's idea from back in 2014—he's a forward-thinking guy) was that people could create skins this way, if that Winamp-era term isn't too obsolete by now, and share them.
However, someone who is plugged into Reddit told me that they used to allow user-defined CSS for customizing subreddits and had to roll it back because of security issues. They built an entire customization UI instead. That scared me off the idea.
My fear with a customization UI—the HN equivalent of which would be profile settings, as you indicate—is that it would get way too complicated too quickly. How many additional settings would we need?
If someone can define a not-too-complicated set of profile settings which, when filled in to taste, would solve people's dark-mode concerns, I'm all for it. We could even make a separate editor page for it and link to that from the profile. The other constraint is: for each setting, the input format would need to be simple to sanitize (e.g. 'valid hex color'). Otherwise we just create the security issue all over again, only with a shitty nonstandard application-level CSS editor instead of standard CSS.
Reddit's user CSS was different, mods could edit it on subreddits and all visitors would receive it. On HN you'd only get the CSS you've set yourself, so there shouldn't really be a security concern (except for CSRF attacks against the settings form I guess).
4 replies →
>If someone can define a not-too-complicated set of profile settings which, when filled in to taste, would solve people's dark-mode concerns, I'm all for it
I posted a possible solution in another comment here[0]. You would have to write a separate dark theme, and there would be a single option to select it in the user panel. The data is literally just an integer pointing to an index in a whitelist of css filenames, and any errors would default to displaying the existing stylesheet.
[0]https://news.ycombinator.com/item?id=23198711
I previously customized HN a bit via my own CSS additions, with the Stylus browser extension. Personally I think that's a more feasible route for personalization than an interface for that on the site itself. However, there's a problem that HN's HTML layout doesn't lend itself to CSS work: you end up describing elements in terms of ‘a div two items down from the one embedded in that thing’, instead of just using classes. Sprinkling around some classes might be something to look at, for providing users the ability for customization. This should be pretty safe. I'd also say that the structure could be more semantic—but that may break browser extensions and similar existing customization.
P.S. I hurried to this thread because I noticed that the ‘collapse comment’ links became larger on my phone and I can finally hit them on the first try. Thanks to whoever did that, sincerely! Though personally I'd encourage you/them to make the link three times wider still, to take away even more effort. Dunno if it's much visual noise to others, but at least I don't think it encroaches on other elements.
Btw, another hopefully-not-controversial change that I would make is to have the post text black, not gray. It's a pretty important element, isn't it? So it should have high contrast and be readable.
1 reply →
I would love to be able to define my own CSS that simply replaced the site’s settings, not just for dark mode. It would let me make changes that would be extremely useful to me.
For example, I’d hide the “hide” links on the main page. I’m sure some people love that feature, but I’ve only ever used it accidentally (fatfingering on mobile).
I’d add a bunch of additional hiding CSS. I’ve long wanted a “helps-me-respect-my-time” version of HN, where voting buttons, flag links, reply boxes, and reply links are all hidden.
1 reply →
I think background color and text color options with inverted voting arrows (as suggested elsewhere in this thread[0]) would be enough for most people.
What.cd used to let you put a url in your settings that was injected as the stylesheet while you were logged in. This approach would let people publish and share themes--though shared themes could be a (pretty visible) security concern.
I remember also running into issues trying to use non-https-served stylesheets since the site was https and browsers balked.
[0] https://news.ycombinator.com/item?id=23199725
You already let us change the top bar color I preferences. Really, this is just a adding “text” and “background” colors - swapping white and black.
This could be a check in preferences, load from the DB the same time as the top bar, then insert into template or however HN is organized server side. Probably <10 lines of total code, If you include DB changes.
It would be all server side so we shouldn’t have an issue in terms of bandwidth.
> this is just a adding “text” and “background” colors - swapping white and black.
I would kindly invite you to skim the CSS suggestions that others made in the thread. It's not as simple as that.
Would it be an idea to open a github repo for this and let the community contribute their efforts there?
That comes with a high level of user expectations that we couldn't possibly meet.
Looking forward to the pull request finally modernising HN into a React SPA
It's possible not everyone will realize this is /s :)
1 reply →
Most solutions seem to be aiming for a quick fix. HN’s classes and HTML probably rarely change, but using css variables would lead to a more maintainable solution than duplicating all the selectors.
(I’d contribute a solution but currently moving across the country with only my phone available)
Challenge accepted: https://github.com/prettydiff/hn_dark
The CSS works well for me, but I understand presentation is highly subjective and some people may not like it.
Perhaps more important is that tiny bit of JavaScript in the readme.md so that anybody can rapidly experiment with CSS themes for Hacker News on live pages with just copy and paste.
This was my first time to do a deep dive into the front-end code of Hacker News and the HTML is archaic. If you would like I can help spruce it up to modern 2008ish HTML code that is fully semantic, accessible, and much better for SEO. Just let me know how I can help.
You don't need JavaScript to experiment with CSS. Just open DevTools and experiment away.
This approach, if you tried it, is just a one time copy/paste to impose an entire theme change, such as swapping CSS files.
There isn't a cross-browser one step way to swap CSS files on live pages that I am aware of, especially if CSP is enabled as is the case with HN.
2 replies →
Don't go the way of CSS filters. I tried some of the CSS people here pasted that used it and it is slow. When I scroll fast Firefox can't keep up and I see white background for a second or two before it renders.
What about just grayscale[1]
[1] https://i.imgur.com/ZfoXaem.png
Parts changed [HTML]: <body style="background-color: #1a1a1a;"> <table bgcolor="#2a2a2a"> <img src="y18.gif" style="border:1px #353535 solid;">
Parts changed [CSS]: a:link { color:#808080; text-decoration:none; } .subtext { font-family:Verdana, Geneva, sans-serif; font-size: 7pt; color:#606060; } .subtext a:link, .subtext a:visited { color:#606060; }
Header links: #b5b5b5 Header link divider: #666
+darker icons
Here's a custom theme I've been using for years: https://github.com/darekkay/config-files/blob/master/userscr...
And please, don't _force_ the theme by using prefer-color-scheme. Use it as default, but please give the option to override it.
This commenter linked their own custom stylesheets that they've already been using: https://news.ycombinator.com/item?id=23198500
I haven't inspected their quality or thoroughness myself, but it seemed like a certain amount of that was implied
Ah, I'm glad you mentioned that; I took a look at it earlier, but I think what would be most helpful is just the most minimal set of CSS we could put in curly braces after prefers-color-scheme: dark. In other words, a patch to https://news.ycombinator.com/news.css that would strictly only add lines—and preferably the most minimal that would do the trick.
For sure. I can try and whip something up later tonight if no other solution presents itself before then. I can email it or post here.
"Move slowly and preserve things" killed me. Not sure if I agree with it entirely but I love having this in my vault
In our profiles we can already set topcolor, why not just add fields for bgcolor and textcolor too?
If that works, we could also make a list of suggested color combos for people who want an easy solution and don't know much about design and don't want to spend a lot of time futzing with it.
And, I mean, the moderators don't have to make that list. The users could share what color combos work for them.
Website with no images? Easy, this is all thats needed:
Its works so well because it keeps the balance of contrast between elements.
Don't over-do it: just start by inverting all the colours ( https://imgur.com/a/uOVCoWz ) and then tweak as necessary for branding.
for the ui pros that want to take a shot at this you can use Charles proxy to redirect the css of the live site to a local file for testing.
it's a good hack to save you a bunch of dev setup time or if you have a production only issue.
happy hacking
Great! And a big thank you for managing the site!
Btw. TIL that you can use `comments > $x` in Algolia's search. That's a cool feature (didn't know about that) or use popular search engines' `:site` ...
@media (prefers-color-scheme: dark) { { html {filter: invert(1)} }
Firefox for iOS has an “Enable Night Mode” that does a great job with HN in dark mode. Maybe you can start with the Firefox iOS Night Mode CSS and minify from there...
Please consider 2 different dark modes:
a "normal" dark mode and one for oled screens which has the background straight black
on the topic of css I've been meaning to ask why hn is so big on iPads since ios 13 (https://imgur.com/bcfeEWB)
is that just me? phones work fine, laptops work fine. But iPad pro 12.9" has been like that since the release of 13
Please make sure the background color is actually black or dark grey, and not some shade of blue.
Perhaps make a mobile friendly stylesheet? Please!!!!
due to HN's simplicity it's already pretty mobile friendly, they just need to make some of the links bigger.
Yes exactly!! That would be all it took!