MDN’s new design is in Beta
blog.mozilla.org
blog.mozilla.org
110+ characters per line is hard to read and ugly [1].
Pure black on white has been discussed many times. While it satisfies min contrast requirements, it feels unnatural, and again, hard to read, causing eye strain [2][3]. Although this is not an issue on screens with automatic brightness adjustment, they are sadly not everywhere and it is wiser to target an average screen considering Mozilla auditory.
[1] http://practicaltypography.com/line-length.html [2] http://ianstormtaylor.com/design-tip-never-use-black/ [3] https://ux.stackexchange.com/questions/23965/is-there-a-prob...
Er, not sure if you're looking at the before and after screenshots the wrong way round? The new design appears to reduce the number of characters per line from ~100 to ~80 (by increasing the body font size).
Compare first line of Array#slice in the old design:
"The slice() method returns a shallow copy of a portion of an array into a new array object selected"
vs the new:
"The slice() method returns a shallow copy of a portion of an array into a new array"
Can you explain why and what you would do?
OK, that all got a little sharp, but I do wonder what "design language" (per the blog post) is steering their information design.
You might want to mention this on the accompanying Discourse feedback thread [1] so it's noted for the next phase.
[0] https://news.ycombinator.com/item?id=14745947
[1] https://discourse.mozilla-community.org/t/beta-redesign-feed...
I guess because I have been to the site before, Matthew has just an irrational disdain for HN readers.
So the poster probably didn't even know about this redirection.
If I find myself there more, I'd be inclined to send him something.
As to its effects, I think he'd prefer to drive off any and every reader who is offended by the ask. They are just costing him bandwidth with zero chance of any return. Maybe they share it with someone who ends up donating, but people who actually donate are much more inclined to be good sources of referrals to other people who may donate.
As to whether it equates to posting a link to an ad or promotion, I really don't think it crosses the line. This isn't one of those informercial sites that lead you on for an eternity without ever providing anything of substance. Instead this is just an interstitial on steroids meant to drive off undesirable traffic. It's 1000 times better than annoying ads and/or anti-blocking measures, imo.
I completely disagree with this. Consider the failure modes of erring in either direction:
- Too much contrast? Reduce screen brightness. (This has the beneficial side effect of increasing battery life on mobile devices.)
- Too little contrast? Uhh… squint more, or try to find software that lets you override the designer's intent.
Most people aren't using professional screens in low lighting, and not everyone has young eyes. Lower contrast can be a deal-breaker for these people. Even for those with perfect vision, low contrast can be incredibly annoying. It's so frustrating to view a screen in direct sunlight and be unable to see content because a designer didn't want to cause eye strain.
A side note: Amusingly, the first thing I did when looking at your second source (http://ianstormtaylor.com/design-tip-never-use-black/) was use my reader mode extension. I disliked the off-black sans-serif font.
1. e.g. scroll to the bottom of https://geoff.greer.fm/2017/02/28/software-rot/ and click "go dark".
>I completely disagree with this
Pure black on white has been reccommended against for some time, typically you'd use dark grey on a pure white bg
>Note: for low resolution screens, an overly strong contrast (full black and white) is not ideal either, as the text starts to flicker. Benchmark: #333 on #fff.
It's not that straightforward. While shorter line lengths may be preferrable for reading bodies of text[1], API pages are rarely read top to bottom. Reducing the number of characters per line makes less content visible on screen, necessitating extra scrolling and slowing down visual searching.
[1] Though it's quite possible to cherry-pick citations for either side: https://www.researchgate.net/profile/Barbara_Chaparro/public... (PDF)
I always favor MDN over w3schools results when searching for a javascript, HTML, DOM or CSS property :)
You should check out Django's documentation: https://docs.djangoproject.com/en/1.11/
In my opinion, it is the gold standard.
Though lately, caniuse, node.green and similar seem to be my bigger searches. It's hard to keep up with some of the cross supported JS features. MDN helps a lot with syntax/usage, and it's way better than any alternatives I've seen as a pure JS resource. I do wish they'd expand the browser versions supported beyond just which browsers are supported a bit more though, then they'd be my first for almost everything.
However, I'm just as concerned about the huge font sizes and high font weight as the majority here. It really distracts from the actual content.
In the "highlight bold" variant, if you type out "mozilla" it becomes the new wordmark: https://ffp4g1ylyit3jdyti1hqcvtb-wpengine.netdna-ssl.com/ope...
I've posted the link to this thread over there along with a couple main points from the comments here so far, but if you really want to make sure your input is heard, you might want to hop on over there to give it. You can log in with a GitHub or Google account if you don't feel like signing up with your email.
Except most parts of the DOM in most engines is implemented in C++, not JS.
<whatever>.prototype is a JS-ism. But the DOM is not defined in terms of JS. It's defined in terms of a language-agnostic set of interfaces. So when poking around and seeing things like NodeIterator.prototype within JS, you're seeing them because the browser is presenting it to you in a way that kind of resembles the way things work for that runtime. <whatever>.prototype (when <whatever> is some DOM interface) is a byproduct of that behavior. But that those interfaces get implemented is the only essential characteristic of the DOM, and the docs should reflect those interfaces, not the weird and tangential byproducts of how the DOM gets projected into a JS runtime.
If I have
a = {}
a.foo = () => ();
foo is a member of a.Where as if I have
class A {
foo() {}
}
a = new A();
foo is a member of the prototype for class A. This is important because I need to know if replacing A.prototype.foo will effect all new As or none. Documenting the function is defined on the prototype tells me this. So, I need both Array.prototype.slice and WebGL2RenderingContext.prototype. getActiveUniformBlockParameter documented the same.If WebGL2RenderingContext.prototype.getActiveUniformBlockParameter is only documented as WebGL2RenderingContext.getActiveUniformBlockParameter that suggests to me that I can't do this
WebGL2RenderingContext.prototype.
getActiveUniformBlockParameter = someNewFunc
gl = someCanvas.getContext("webgl2")
Instead I must do this gl = someCanvas.getContext("webgl2")
gl.getActiveUniformBlockParameter = someNewFunc
The first is far more useful because I can effect it indirectly. The second requires me to modified code at creation, code that might be in a 3rd party library.So, if .prototype. is left out of the docs for WebGL2RenderingContext.prototype.getActiveUniformBlockParameter that suggests to me I can't do the first. Seems like those 2 things Array.prototype.slice and WebGL2RenderingContext.prototype.getActiveUniformBlockParameter should be documented consistently. In other words, a JS programmer does not care about implementation details. They don't care one object is a DOM element vs a JS Object (at least not in this case). They care how they can use it in a program. To do that they need to know is the function on the prototype or on the object itself and documenting as Class.prototype.func tells them that.
I know how prototypes work, and I know why the `Array.prototype.slice` are documented that way, because I wrote those docs—and caught a bunch of flak along the way when making the move away from referring those and other methods in the form `Array.slice`—in 2007.
It's hard to address the issue using your specific example, because it's so contrived. (Who is replacing native implementations [don't], and why? [Once again: don't.]) Here's the actual motivating factor for why you see stuff like `Array.prototype.slice` documented that way:
There are methods `fromCharCode` and `charCodeAt`. However, you call the former as `String.fromCharCode` and the latter as `x.charCodeAt`, where `x` is some string instance. That's an important distinction, which means it's important that we not refer to them as `String.fromCharCode` and `String.charCodeAt`. The former is a real method that actually existed, and the latter is something that doesn't exist Which means if we tell readers "Use `String.charCodeAt`", then what we're doing is giving readers bad, confusing, and possibly frustrating information—not what you want when your goal is to be explaining things to an already unsure or simply ignorant audience. This distinction only became more important with ES5, since it started adding things like `Object.keys` and `Object.defineOwnProperty`, rather than making those methods available to all instances by adding them to the prototype.
But this is all besides the point, because we're talking about the DOM here.
> I'm not understanding the distinction from a JS programmer's perspective
That's the problem. Because what we're discussing is a reference for people using the DOM, and once again your changes would force a bunch of JS-isms into the scope of the documentation, and not only that, but a bunch of shaky, not-at-all-well-understood-or-agreed-upon, cobweb-covered parts of how the underlying objects get projected into JS.
> In other words, a JS programmer does not care about implementation details.
You understand that the thing you're asking for are that implementation details surface through the docs, right? And that they should be a prominent feature? That's what you're asking for.
And less actual content, forcing you to scroll or zoom out.
Plus, improving typography and cohesiveness of design language can aid speed of navigation, when done carefully.
That said, I did think MDN's current design was both usable and modern, so it wasn't high up on the list of sites I was hoping for a refactor of...
Even Hacker News I have permanently zoomed to 125% and sometimes find it to be too small.
Bravo Mozilla, looks great!
This is an issue of eyesight, a ridiculously high DPI without corresponding scaling, or both.
HN, Google, DDG and Wikipedia (the mobile version is nicer) are the ones I can't use without setting to 125%.
[0] An upside of the mobile first trend?
EDIT: Eh, scratch that. Just noticed Github (125%) and Twitter (110%) are also on the list ¯\_(ツ)_/¯
HN didn't exist in the 1990s, but its design principles are from that era. The look itself is a nice throwback, but the type size follows a technical constraint that no longer makes sense (it only made sense when CSS was nonexistent or very limited).
Is scrolling really the big of a barrier for information? It seems like a fair trade off to me. They're current design tends to blend together for my eye when scanning and is difficult to "jump" to the sections I'm looking for.
Comparison: http://imgur.com/a/81cYg
The increased font size and more pronounced page hierarchy make it easier for me to grok the page structure at a glance and navigate to the section I need (since I'm probably not reading the entire page front to bottom if I'm at an MDN link).
Why does all information need to be above the fold? It's not like I can interpret everything on the page in the 1000ms necessary it would take me to scroll.
Yes.
This is not a new and unexplored concept.
Below the fold arguments only make sense when you can't grasp the purpose of the page without scrolling.
You're not supposed to cram every piece of information you can above the fold. The information that is getting cut off in this case is hardly pertinent to the understanding or navigation of the site.
No, it doesn't. The Array.prototype.slice() documentation is eight screens high on my Macbook Pro.
Note also the difference in vertical size of the two screenshots - you're comparing apples to oranges.
And unrelated, the new Mozilla logo: still cannot get used to it; seems like the calligraphic humble old one was vandalized by some 1337 H4X0RZ :|
IMO they could try making the bold header a lighter shade to stop stealing focus. I much prefer the older one for readability.
At least the ES6 Map has finally usurped the antiquated <map> as the top 'Map' result :)
Firefox's drop to 15% market share has a big effect on developers. I've watched my add-on usage drop in lockstep with Firefox's market decline.
[0] https://blog.mozilla.org/opendesign/future-mdn-focus-web-doc...
MDN looked and felt great to browse before, now the headline is absurdly misproportioned and in the wrong place (not in the text column).
So, I have to make the rest of my UI unreadable, just because you prefer to use a cheap chinese 20$ screen which can’t even handle sRGB?
Welcome to reality, most people use cheap $20 chinese screens.
We should try and create the content in the best possible formats, with the highest available standards, and then the user agent, acting on behalf of the user, should scale that to the user’s current system, increasing or decreasing the contrast.
Please edit this sort of acerbic swipe out of your comments here. It breaks HN's civility rule.
https://news.ycombinator.com/newsguidelines.html
We detached this subthread from https://news.ycombinator.com/item?id=14746365 and marked it off-topic.