Changing Best Practises with ES201X

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.

Pragmatic, Practical, and Progressive Theming with Custom Properties

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.

PWA Discovery: You Ain't Seen Nothin Yet

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.

ES6 module loading: More complicated than you think

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.

A love letter to jQuery

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.

Canceled as the third state

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.

The woes of date input

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.

JavaScript web apps considered valuable

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.

What's new in Safari 9.1

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.

Support for older versions of IE ends today

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…

Node & WHATWG Loader

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.

Progressive enhancement with handlers and enhancers

I really like this way of hooking up JavaScript with progressive enhancement — even as I do more and more JS-heavy work these days, I always lean toward things being declarative if possible.

The God Login

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 Element Demo

Native <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.

Security for All

Some really good thoughts from Jeremy Keith about the reasons for, and implications of, the web going SSL by default.

CSS Guidelines

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.

View Full Site — The Worst Anti-Pattern

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.

One Year of Blink and WebKit

Interesting data on how the two codebases are diverging. I like how Blink dropped 25% of WebKit code almost immediately after the fork.

Microformats 2

<>I somehow missed this when it was announced, but the second version of Microformats is a significant improvement — much nicer classnames, less verbosity, and most importantly less markup cruft. (At this point Google's Structured Data Testing Tool doesn't recognise the new formats, but that should change soon.)


Great JavaScript library for dealing with dates, for use in the browser and in Node. If you're doing anything beyond trivial with dates in JavaScript, this could save you a few headaches (it did for me today).

Revisiting the "Cookieless Domain" Recommendation

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.

App-pocalypse Now

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.

Responsive Image Container

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.

CSS is for developers

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.

The operating system is the browser

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.

Taming Data Tables

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.

Safari on iOS 7 and HTML5

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).

jQuery 2.0 Released

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.

Element Queries

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?

HTTP Archive: jQuery

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.

Design From the Inside Out With CSS Min-Content

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.

The Good & Bad of Level 4 Media Queries

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.

WebKit for Developers

Paul Irish gives a detailed and informed explanation of exactly what WebKit is, and (equally important) what it isn't.

The main issue

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.

You can’t create a button

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.

Interview with Ian Hickson

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.

Responsive responsive design

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).

Update on relationship between WHATWG and W3C standards

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.

IE's CSS selector limit

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.

Crazy Town Selectors

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.

Fluid Type

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.

HTML Special Characters

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.

Questions for Mobilism

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.

Mozilla debates supporting H.264 video playback

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.

Negative Proximity

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.

No simple solution for local storage

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.

New features in Internet Explorer 10

I've always felt that IE9 generally prioritised CSS3 stuff over HTML5 stuff in order to please web designers; things like border-radius and 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. beta

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.

Content management, markup and doing it wrong

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?