The Many Faces of The Web

During the winter 2014, me and my family rented an apartment from San Diego, CA for few months through my work. While staying there, we had an AT&T hotspot device that provided the network connection. For us, relying on this device, meant constant drops of connection, network latency like we’ve never seen before, and websites that were completely broken because Java­Script wasn’t loading at all. A part of this can be explained by the poor reception at the location where we were staying, but overall, the whole experience put me thinking.

All these contexts, where our web­sites are viewed in, vary so wildly that we have to start paying more attention to how we design and build. The web is fragile and the situation isn’t going to change any time soon.

Stop breaking the web

Universality is in the core of the World Wide Web, so we should embrace it and build websites that are available to, and accessible by, everyone.

There’s this thought in my head that, like a broken record, keeps repeating to me and everyone around: “Stop breaking the web.” And if I think about it more, I realize it’s related to this funda­mental idea that I have, which makes me want to push the web forward and make it a better place. Because isn’t that what we, the designers and developers of this medium, should strive for and be proud of?

On a bigger scale, I mean things like making our websites accessible to everyone. Making them work with different input methods like touch, mouse, keyboard or voice. Making them load and perform fast. Providing everyone access to this vast network of connected things. And if we don’t strive for all of this, what’s the point of working on the web? To me, this is what the web is and has always been about. Making people’s lives better. Making information accessible to everyone—wherever, whenever and as fast as possible.

The thing about the web that still fascinates me after all these years, is how universally accessible it is. How you can publish something out there and how someone on the other side of this planet can just pick up a connected device and access that content. Even more fascinating, use assistive technology that reads the content for the user. But—it’s also so easy to break this connection if we don’t pay attention.

How we build

I feel like there’s a growing trend in our industry to forget accessi­bility. To not pay attention. Forget progressively enhanced experiences. Forget the universality of the medium that we are working on. Forget that not every­one on this planet has the latest and greatest devices or the connection speeds that we, ourself, might have.

This worries me and puts me thinking.

Instead of coming up with all these new tools and JavaScript frame­works, shouldn’t we try to emphasize the importance of learning the underlying funda­mentals of the web? Teach those who are just stepping to this medium and starting their careers. By not making our stack more and more complex, but by telling about the best practices that should guide our work and the importance of basic things.

Why accessibility is important and why does it make a difference. Why is progressive enhancement important. Why everyone doesn’t have to get the same experience and why it isn’t even a sane goal. Why do we need perfor­mance budgets. Why it’s important to make websites work even when JavaScript doesn’t load. Why we can’t rely on a browser feature to be available. Why we need to focus on features and constraints rather than browsers and devices. And so on and so on.

Embrace the medium

The web is more than just a set of protocols and agreements—HTTP, URLs, HTML. It’s also built with a set of principles that—much like the principles underlying the internet itself—are founded on ideas of universality and accessibility (as Jeremy Keith states it).

We are designing and building experiences for a medium, where it’s not possible to control our user’s age, abilities, context, device, browser, screen size, operating system, connection speed, or even the input method they are using. The contexts, where our websites will be eventually viewed in, are a mix of variables we can’t control.

Universality is in the core of the World Wide Web, so we should embrace it and build websites that are available to, and accessible by, everyone. We are designing and building for the many faces of the web.

Dear Web, I want to make you a better place. ❦

Dashes in Web Typography

This is an experiment I did months ago, but eventually never ended up posting it here. I had already forgotten the whole thing until it few weeks ago suddenly started popping up on my Twitter and Facebook timelines via other people. It’s a simple one pager you can use for example as a cheatsheet for various dashes.

Dashes in Web Typography

Read the article

Molten Leading

Manually adjusting line-height with media queries for optimum readability across vast number of screen sizes can be hard. What makes it even harder, is, that instead of the screen width, the line-height should be relative to its container’s width and its font settings in order to achieve proper readability and appropriate spacing.

Molten Leading is a tiny JavaScript plugin that automatically adjusts line-height based on element width for optimum readability across vast number of devices.

Thanks to @Wilto, there has been a jQuery plugin called “Molten Leading” around for quite some time already which makes it possible to automate this process and define a minimum width at which the adjustment starts, a maximum element width where it stops, and a minimum and maximum line-height to adjust through.

I wanted to use something similar in one of my latest projects, but I didn’t want to introduce new dependencies to external JavaScript libraries just because of this one feature. I also wanted something that would have a bit better performance, so I decided to write a custom version of Molten Leading without any library dependencies. All this is now available on GitHub too, so take a look and give it a spin.


  • Automatically adjust line-height based on element width.
  • Works in all browsers, including IE6 and up.
  • Uses requestAnimationFrame for the best possible performance.
  • Free to use in both commercial and non-commercial projects.
  • Doesn’t require external JavaScript libraries.
  • Supports px, em and rem CSS units.
  • Weighs only 1.17kb minified and Gzip’ed.
  • Supports multiple instances.

Responsive Line Height


Molten Leading on GitHub