Nick Sherman gave a fascinating talk at Ampersand earlier this month which was based on an article he wrote called Variable Fonts for Responsive Design. In both the talk and the essay he suggests that we need a new font format to solve complex responsive design problems:
…the glyph shapes in modern fonts are restricted to a single, static configuration. Any variation in weight, width, stroke contrast, etc.—no matter how subtle—requires separate font files. This concept may not seem so bad in the realm of print design, where layouts are also static. On the web, though, this limitation is what I refer to as the “glass floor” of responsive typography: while higher-level typographic variables like margins, line spacing, and font size can adjust dynamically to each reader’s viewing environment, that flexibility disappears for lower-level variables that are defined within the font. Each glyph is like an ice cube floating in a sea of otherwise fluid design.
Manipulating a character in this way is commonly referred to as interpolation in the type design community: designers pick multiple poles, such as thick or thin, condensed or extended characters, and let a clever algorithm create a value in between. The example below, from Andrew Johnson’s SVG interpolation experiment, explains this process well:

As Nick mentioned, interpolating from light to bold, or from thin to wide letterforms is unfortunately impossible with the current font formats that we have for the web. However, he’s not the only designer calling for improvements to be made here, as Andrew Johnson has made similar requests for a responsive font format:
…today’s webfonts tie our responsive sites and applications to inflexible type that doesn’t scale. As a result, our users get poor reading experiences and longer loading times from additional font weights.
But why would we want responsive features like this in a font format anyway? How would that help us solve design problems?
The benefits of a variable font format
This new format would offer minute typographic control for designers, particularly for when a regular weight looks too thin and a bold weight looks too thick. Instead, we could pick a value in between thin and bold and the font would interpolate between them — in other words, designers would be able to make a substantial improvement to legibility.
Also, we could finally make layouts where words or sentences take up the whole space of its parent container, just like in the demo called Font to Width:

This technique might sound similar to FitText or using viewport units to set responsive text, but there is a clear distinction to be made that the type designer Erik van Blokland outlined:
Width variations will have an immediate application in fitting typography to the target rectangle. Words need to be able to respond to the page geometry.
So in order to best respond to the “page geometry” we need more control over the fonts that we apply to our designs and the width of each glyph is just as important as being able to set a responsive value for the font-size
.
Another reason for implementing a new variable font format might be performance, as we’d only request the download of a single file, rather than the multiple fonts we need today when working with systems that require large type families that contain Extra-Light, Light, Regular, Medium, Semi-Bold, Bold and Black variants.
This idea of a responsive font format isn’t new and there have been multiple attempts in the past of creating something very similar. Adam Twardoch, the Director of Products at Fontlab, called for a resurgence of these ideas back in 2013:
In the web context, I think at least one of these variable font models deserves resurrection – because it offers tremendous compression potentials, lends itself well into the “responsive web” paradigm, offers new possibilities for text layout on the web and, above all, can be implemented much more easily on the web than it ever could be on desktop platforms.
Nick continued to summarise the benefits like this:
A variable font would mean less bandwidth, fewer round-trips to the server, faster load times, and decidedly more typographic flexibility. It’s a win across the board. (The still-untested variable here is how much time might be taken for additional computational processing.)
However, there are lots of technical considerations to think about when introducing a new font format to the web, so how might we implement these features in our designs?
How this new format might work in CSS
In his talk, Nick suggested a practical example in CSS that I’ve developed a little here with an imaginary property called font-width
that lets us set the width of a character just like we can set the font-weight
of an element today:
@font-face {
font-family: WebFont;
src: url('webfont.new') format('new format');
}
body {
font-family: WebFont;
font-weight: 450;
font-width: 200;
}
h1 {
font-weight: 600;
font-width: 999;
}
We could then set another element to have a font-weight
of 601
or 411
or whatever value that the design required for that particular element and the text would respond in kind.
Now, there are most definitely flaws in the example above, but I think it gets to the heart of the matter which is that our websites would be capable of so much more subtlety and nuance than they currently possess. And I can think of lots of examples where this new format would create more striking and beautiful layouts, not to mention how useful it might be in zoomable user interfaces.
What about WOFF?
There’s another font format that’s currently gaining traction called WOFF 2.0. It’s been designed to greatly improve the compression algorithm over its predecessor and it’s going to be wonderfully useful for Asian scripts and other languages that require fonts made up of lots of glyphs. However, WOFF 2.0 still doesn’t give us the design variation that we can get from a variable font format as we still need multiple fonts for different widths and weights.
So I think WOFF is great in the short term, but it doesn’t really help our long term goals of making these font formats truly responsive.
Potential problems
As much as I’ve discussed the advantages of this new format in terms of design and development, there are problems with it, too. Here are some of the most pressing issues that I’ve come up with so far:
- If this interpolation algorithm is running client-side then it’s fair to say it might be bad for performance.
- Licensing web fonts would need to be reconsidered since customers now only need a single font file instead of the multiple weights and widths that they need today.
- Playing devil’s advocate here for a second: but is it really necessary for type to be dynamic on the user’s device?
- I’ve talked to a couple of designers about this and they’ve mentioned that a half-working proposal in browsers would be worse than nothing at all.
- Type designers would need to figure out how to educate designers why this new system might help them in their work and what benefit it has for the web overall. I spoke to a type designer recently and he mentioned how he avoids adding OpenType features into his fonts, such as small caps and ligatures, because so many graphic designers simply don’t know and/or care about them.
- Likewise, type designers can’t easily redesign existing typefaces to use these new variables as they would have to be designed from the ground up to use this technology from the very beginning of a project.
Summing up
I think there’s huge potential for a new variable font format to become a key part of the designer’s tool belt. It would greatly improve the reading experience of general users of the web, too. But that doesn’t mean we can ignore the many problems and hurdles that we have to overcome to get a draft spec agreed upon.
What do you think? Would you welcome variable font files with open arms? Or is the whole idea an idealistic pipe dream? We’d love to hear what you think below in the comments.
Knuth’s MetaFONT reborn?
I, for one, am doubtful that we would see a performance improvement from more complex font formats, paying the hit of smallcaps definitions I will not use, etc., to say nothing about the security implications of an even more versatile font format.
Donald Knuth’s 1979 program Metafont was based on similar ideas:
Given recent advances in processing power, by now you could probably just embed Metafont in the browser and call it done, even on mobile devices.
This sounds like a great idea! A good first step would be to polyfill the CSS properties with JavaScript, and apply using SVG fonts.
Adobe’s Multiple Master fonts technology was developed just for this reason. https://en.wikipedia.org/wiki/Multiple_master_fonts
Instead of font-width, we already have something similar: font-stretch
They can change the implementation of font-stretch, allowing numeric values.
https://developer.mozilla.org/en/docs/Web/CSS/font-stretch
Interesting idea! One thing that I would ask is to get a bunch of font designers to weigh in on this. Although it is an interesting technical solution, font designers might be rather fussy about how their fonts look in their “intermediate” states, and may want to add extra features of how the interpolation algorithm is implemented. The examples you give look cool, but if the font is more complex, there may be issues that you may not have thought of that will arise.
If the algorithm also takes into account extrapolation (i.e. guesses about how type should appear if it, say, needs to be wider than the fonts are originally designed), font designers may object to this like they object to faux-bolding and faux-italicizing (i.e. obliquing).
Don’t get me wrong — not trying to be negative here. I just think it would be great if font designers should be involved in this so they can help solve these and other creative issues that may arise.
So agree with you on this man, really good point, bring a proper font designer and see his reaction on this … I’m telling you he/she won’t be that happy.
This is an interesting idea but I only see this in the hands of experienced designer who have played with type and rules of type all their life … not in the hands of your everyday designer that does not take type in consideration … imagine this freedom in their hands … and right now internet speeds are growing why bother thing about 2-3 fonts loading … and if you’re a good designer/developer you will make sure that the user has a good reading experience with the tools you already have …
Personally I do not need this … there’s a thin difference between organic and fluid (as a liquid) … organic – adapts … fluid – spills all over … just saying.
Is bandwidth really a problem?
Yes. Yes it is.
The irritation on seeing a page without any text (because the custom font is taking a long time to load) is immense. While the idea here may have applicability to responsive design, what we really need is a change to browser font handling so that text renders in a local font if the entire page is loaded before the fonts are so that the content can be consumed (which is after all the whole point).
Sorry, people assuming bandwidth is infinite spoils the whole web for those of us for whom it isn’t.
How about No?
That is an absolute nightmare design and typography wise. No Typographer will jump on this bandwagon ever. Because thats not how typography and legibility works.
No. Please, no…
A font designer design a font to be as he designed, not to be stretched… Is like putting a pitch/speed knob on your standard music player…
I can see the potential for abusing this if it were to be implemented.
Looking at the examples of stretched out text is tiring, it reduces readability and looks messy.
Forcing your users to make the (admittedly tiny) mental effort to reprocess what they’re reading every time they come across a different font width negatively impacts their experience on your site.
This seems like a feature that will make developer’s lives easier but user’s lives harder and I don’t think we should move in that direction.
The best would be if the browser included a built-in generic multiple-masters-type-of font, so that the author could specify an exact weight, width, serif-ness, thick-to-thin stroke ratio, etc., and it would just use that instantly, even while a font with similar metrics but perhaps slightly different character was being downloaded.
Hi,
I have written an extensive interim report on TypeDrawers on the current state of the implementation of foundations for “responsive fonts”, based on extensions to the TrueType GX Variations mechanism designed and implemented by Apple.
The short version is: Mac OS X, iOS and (potentially) Android and Linux systems already have or may soon have basic support for the most important bits of this, and development is heavily under way!
To clarify: WOFF2 and WOFF have nothing to do with this. They’re just compression techniques, kind of like GZIP, just a bit more sophisticated and custom-tailored toward font structures. What needs to change is within the SFNT container (and the handling thereof). SFNT is the umbrella term over TrueType and OpenType, or TTF and OTF. If SFNT is like SVG, then WOFF is like SVGZ.
These examples by Erik van Blokland show how responsive typography can be realized, via an SVG+JS polyfill: sanserif headline, Arabic, calligraphic script, hand lettering. The code for this is opensource. The GX Variations fonts will allow this type behavior (and of course all kinds of less-animated, less-flashy use cases) natively.
Ps. When viewing these examples, make sure to keep resizing your browser window.
This is very interesting in concept!
A software will have to be designed to allow type designers to take their master and configure parameters for weight and width before it’s packed into said new format, for more intelligent (or intended) scaling. eg: For times when the stroke weights grow slower on the vertical axis than on the horizontal one. Relevant read: http://www.lucasfonts.com/about/interpolation-theory/
That said, I am pretty scared to see this in practice. I’m going to explain my concerns with a ‘with great power comes great responsibility’ example:
The print medium gives you the possibility to disproportionately scale the letterform by pulling the rectangle either horizontally or vertically. The existence of this ‘feature’ has been exploited so often, not because the typeface was flexible, but because the program allows for it.
Look forward to reading more on this thread!
Really liked the link you gave and I agree with you on a software that permits the type designer to set rules.
Also the “transform” option in many apps gor the ability to strech and deform fonts should be taken out or active only when you convert the word to a shape
Well presented but I don’t think that’s a good idea because I’ve repeatedly been told by typographers that it was not how typography works. I think most typographers will not agree with you. You don’t stretch a font.
Font size is a sufficient parameter to adapt to different screen sizes.
About the weight o “Extra-Light, Light, Regular, Medium, Semi-Bold, Bold and Black variants” on a page: irrelevant. There are exceptions but a good design does not have that many font weights. Just like it does not have more than 2 or 3 fonts.
Looks like overengineering, and I totally agree that this potentially “breaks” the design of the fonts at middle points.