Slides from my MK.js talk last week about how new JS language features are changing some best practises, and how to approach retrofitting these new features to a mature project.
Great post as always by Harry Roberts on how we can use CSS custom properties to do theming better. I recently had to implement theming for a pretty big app at work, and while I’m quite pleased with the code, I can’t wait for the day I can justify ripping it out and using custom properties instead.
Google’s Alex Russell offers some clarifications and insights into the possible future of progressive web apps, particularly around the prerequisites for — and process of — discovery from within the browser. I like the way a lot of this stuff is going.
Nichola C. Zakas, of ESLint fame, explains in depth why it’s not possible to auto-detect ES2015 modules, and why instead you have to tell the consuming program (browser, linter, whatever) what the file is upfront.
I share virtually all the sentiments in this wonderfully personal ode to jQuery (except the comparison to Angular and React, which makes no sense). jQuery is still an important part of the front-end toolkit for me, and is still always pleasing to use.
Domenic Denicola outlines the need for a third “cancelled” state for Promise, after “fulfilled” or “rejected”. If cancellable promises can get sorted, it will have a positive effect on a number of other in-the-works specs, so this is good to see.
A thoughtful post by Erin Lynch about the web’s (and Google’s) push towards TLS and HTTP/2, and whether “forcing” website owners to act by affecting search rankings is the right thing to do.
Ian Devlin takes an in-depth look at the current state of
input[type="date"] in browsers, with some tips to avoid the buggy edge cases. Also, I didn’t know you could turn off the built-in datepicker in desktop Chrome/Opera, although despite being ugly it is at least accessible.
There’s so much good stuff in this article by Mathias Schäfer, I can’t pick one line to quote. It does a fanastic job of debunking the nonsense peddled from some quarters about JS apps.
A surprisingly good showing from a new minor release of Safari. Includes the
<picture> element, CSS variables and, most notably, the removal of the 300ms tap delay; this will make the web feel a lot faster for a lot of users.
More good news in the world of browsers: from today onwards, IE11 will be the oldest officially supported version of IE. Hopefully this will give slow-moving corporate IT departments the impetus they need to get moving off old, insecure software. Hopefully…
If you’re wondering when we’ll be able to use ES6 modules natively in Node, this video by Bradley Meck is worth your time.
A detailed article from Jeff Atwood about the not-so-simple task of designing and building a login form. Some really good stuff in here, although I disagree about removing the login requirement by authenticating on other platforms — I'd rather not have my access to online services so tightly coupled to my Google or Twitter account.
<dialog> support is now here, albeit only in Chromium so far. This page has some useful code examples and demos, as well as a short FAQ. I spent some of yesterday at work refactoring our modal dialog widget to use the native implementation when available, and it was pretty straightforward, although I look forward to the day when we don't need the fallback.
Some really good thoughts from Jeremy Keith about the reasons for, and implications of, the web going SSL by default.
I love Harry Roberts' CSS Guidelines, so it's great to see them move from a plain Markdown file on GitHub to a beautiful, readable web page, and being further developed (follow @cssguidelines for updates). It really is essential reading for anyone serious about writing good CSS.
This post from Jordan Moore isn't new, but is relevant in the wake of Mobile Safari's "Request Desktop Site" feature coming in iOS 8 (this feature already exists in Chrome on iOS and Android). I'd add an anecdotal observation: users don't just look for the full site link when the mobile site is bad, they do it because they assume the mobile site will be bad, from painful experience. Anyway, it seems like there ought to be a meta tag or something we can add to a page's markup to tell browsers "this is the full site", otherwise users will be pressing this button and having nothing happen.
A good post by Harry Roberts on what Vim is really about and how it might make you productive. This has turned me from sceptical to curious — Vim is now high on my list of new things to try.
Interesting data on how the two codebases are diverging. I like how Blink dropped 25% of WebKit code almost immediately after the fork.
A good post with good data which strongly suggests that serving CSS from a separate cookieless domain is actually worse for performance, as it will block rendering while it does the extra DNS lookup.
A bit of a rant by Jeff Atwood, but I basically agree with everything. The sooner companies stop obsessing over building apps when they don't need them, the sooner native apps and the web will benefit.
A long post from Yoav Weiss about his idea/proposal for a responsive images container file format. I'd love to see something like this get off the ground.
Lea Verou is tackling the notion that writing CSS doesn't make you a developer, and I fully agree. It's a testament to the design of CSS that it's accessible to just about anyone, but it takes a developer to extract the most from it.
This is a nice vision from Anne van Kesteren, but reading it makes me feel a little uneasy. As proponents of the web, we shouldn't be too inward-looking and get absorbed in our own web-focused world. The web and native platforms/apps have different strengths and weaknesses and there will always be a place for both — there doesn't have to be a winner.
Marking up and styling
<table>s has always been an interesting problem for me, and here Harry Roberts explains his clever method of normalising table layouts on a complex page.
A good run-down by Steve Souders of the prefetching and prerendering techniques now available to us in modern browsers. Some of this is really trivial to implement but could make a site noticeably snappier for users.
As usual, an excellent and thorough post by Max Firtman detailing the changes to Mobile Safari (and UIWebView) in iOS 7. A must-read for any web developer (and it's certainly not all good news).
A big milestone, and a couple of major changes — support for IE < 9 has been removed, slicing 12% off the file size, and you can now do custom builds to save more file size by removing modules you don't need.
Tab Atkins bring us down to earth with this post detailing why element queries would be so challenging to implement. Personally, I think the ideas about ways to avoid the looping problem won't really satisfy developers — what we really need is a
@container directive and nothing less will do. I'd be interested to hear how implementers feel about the looping problem — could it be managed with robust error handling or is there just too much risk of crashing the browser?
A good round-up by David Storey of what it looks like IE11 will be including. Very promising.
Thanks to John Resig, I finally understand what Asm.js is and why I'll almost certainly never use it.
Steve Souders has been through data from his HTTP Archive project to find out how many sites use the Google CDN to load the core jQuery library and how that might influence your decision on whether to use the Google CDN or self-host. As usual with Steve's blog, the discussion in the comments is also very informative and insightful.
Nice explanation of
min-content, a CSS
width value I wasn't aware of but that looks really useful. It's sort of the opposite of
width:auto — instead of growing as wide as it can within its container, it shrinks as narrow as it can around the width of its contents.
Stu Cox takes a look at the new Level 4 Media Queries for detecting input devices, and finds that the sophistication of today's and tomorrow's touch-enabled devices might just render them useless.
Paul Irish gives a detailed and informed explanation of exactly what WebKit is, and (equally important) what it isn't.
A great idea by Jeremy Keith, to "allow the main element to exist within sectioning content the same as header and footer". My problem with
<main> is based on it doing nothing more than what ARIA's
role="main" already does, but I would be in favour of this broadened definition.
Nicholas C. Zakas reminds us that when it comes to user interaction, the humble tools that HTML provides are the right ones for the job.
This is a great interview of Hixie by Bruce Lawson for HTML5 Doctor with some frank and detailed answers. If you have any interest at all in HTML as a standard and its future, you should read this — it's good to get more of an insight into what might seem, from the outside, to be arbitrary decision-making. Also worth a read is the prior interview with Robin Berjon, Hixie's opposite number at the W3C.
A timely reminder from Tim Kadlec that responsive design (in the fluid grids, flexible images and media queries sense) must also be responsive (in the performance sense).
Aarron Walter, writing on the MailChimp blog, makes some excellent points about why having Facebook and Twitter login options could do more harm than good for a web service.
This email from Ian Hickson to the W3C HTML mailing list is worth a read. For those who follow the HTML spec, either from the WHATWG or W3C side, this probably isn't news, but it's a nice clarification of how things are supposed to work from now on.
Excellent, data-rich article by Ilya Grigorik about the often-overlooked issue of latency and its effect on web performance:
Bless is a tool for splitting stylesheets into separate files to avoid running into Internet Explorer's CSS selector limit. Wait, what CSS selector limit? Well, it turns out that IE will only parse the first 4095 rules in a stylesheet — any subsequent rules are simply ignored.
I like the way Chris Coyier translates this crazy selector
.article #comments ul > li > a.button into English, helping to illustrate just how crazy it is. Nicely done.
Like many web designers, I am really interested in typography and what can be done with it on the web. Unfortunately, like many web developers, I know almost nothing about typography, so I'm trying to cure my ignorance by reading articles like this one by Trent Walton, discussing type in the context of responsive design.
This one-page tool by Neal Chester lists unicode characters with their entity codes for HTML and CSS, along with some advice on implementation and browser behaviours. There are a lot of tools doing this job on the web, but this is the best-categorised, best-designed and most useful one I've seen yet.
I'm off to Mobilism in just a few days. One of the bits I'm most looking forward to is the mobile browser panel, featuring people from the RIM, Nokia, Opera and Google mobile browser teams, and moderated by Jeremy Keith. There'll be an opportunity for the audience to throw some questions at the panel (I certainly intend to) but Jeremy is also asking for questions from people who won't be there to put their hand up. Since there's a guy from Opera there, I can imagine there'll be plenty of prefix-related stuff, but we must try and mix in some other topics as well.
Great coverage and analysis by Ryan Paul at Ars Technica of the latest development in the HTML5 video codecs situation, where Mozilla appears to be wavering on its commitment to not support H.264 as Google still hasn't acted on its threat to drop support from Chrome.
Another brilliant, thoughtful piece on the complexities of CSS by Eric Meyer, this time dealing with descendant selectors having no notion of element proximity, and how that can cause you problems when using things like the negation pseudo-class. Something I hadn't thought of myself, and certainly something to watch out for. With all the advanced selectors, pseudo-classes and pseudo-elements coming to CSS, specificity can become a real nightmare if your CSS isn't well-written and well-managed.
Christian Heilmann says we ought to "stop advocating
localStorage" as it performs badly. Hmm. I like
localStorage, and it does work well when used for its intended purpose — storing little bits of data in the browser. The problem is that misguided developers are trying to use it as a database, but that's not a problem with
localStorage, it's a problem with misguided developers.
I've always felt that IE9 generally prioritised CSS3 stuff over HTML5 stuff in order to please web designers; things like
box-shadow were in, but all the new forms stuff was out. I'm pleased to see that those important new input types and attributes have now been added to IE10, along with many new APIs such as
history.pushState plus a ton of other stuff.
I knew there was a new government website in the works that would supplant all the existing ones, but frankly I've paid it no attention until now. Yesterday, though, the team behind the project launched the beta I have linked here. All this is very un-government-like. Clearly there are smart people on this project. In fact, they're running a blog about it as well.
Mark Perkins, following up on his tweet about how content management systems should leave the markup to you "and give you access to the data". Does anyone make a product that just does what Mark is describing? No bloated admin interface, no templates, no themes, no widgets, just a good API with good documentation?