- From: Adam Twardoch (List) <list.adam@twardoch.com>
- Date: Thu, 20 Jun 2013 06:03:14 +0200
- To: "public-webfonts-wg@w3.org" <public-webfonts-wg@w3.org>
Dear list members, As a separate issue from my OFF/X proposal, I'd like to throw another idea here: Both Adobe and Apple dabbled with the idea of variable glyph rendering models ("TrueType variations" and "Multiple Master"). Apple once defined extensions to the TrueType rendering model (and layout model, actually) which used the glyf table in addition to several other tables: fvar, gvar. In the OpenType specs 1.0-1.2, Adobe defined an extended version of the CFF table along with the tables fvar, MMSD, MMFX -- this was removed in the OpenType spec 1.25. I certainly understand why the gvar model never got traction, and why the MM model was removed from the OT spec at the time. The ultimate target medium at that time was print, which was "static", and supporting it on the desktop system level, in application UIs, has always been a hassle. But today, 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. Plus, the specs are already there. Imagine the following situation: 1. The website sends to the browser a WOFF with gvar/MM capabilities. This is done once. 2. Whenever the same CSS font-family is used with a different font-weight or font-stretch parameter, the browser dynamically selects the appropriate instance of the gvar/MM font. Currently, if I want to use a "hairline", a "regular" and a "bold" version of a font on my website, the browser has to download three fonts down from the server. Even if those fonts were originally created parametrically (e.g. using Multiple Master), they have been generated into static instances, converted to WOFF, and are then served as separate resources. This is a huge waste of bandwidth, and of course highly limits the usefulness. If a variable font model was supported, @media queries could influence a dynamic client-side font stretching when the viewport is scaled. And the numerical font-weight parameter could be used to its full potential (from 0 to 1000 or from 100 to 900, in single-number increments). This is just a loose idea for now. But my main point is: web fonts are now "decoupled" from the desktop fonts. Web browsers have the ability to support font formats which are not supported on desktop systems -- this is currently the case, where the "old-style" SVG Font "mini" 1.0 format is supported in many browsers, but in no desktop OS. Similarly, if one official version of the SVG table gets adopted as part of the SFNT container, web browsers can start supporting it regardless of whether and how this gets supported in desktop systems. Even now Firefox supports Mozilla's SVG table proposal, and a custom build of Chrome supports the CBDT/CBLC bitmap tables. Specifically, if "we" wanted to resurrect Adobe's model for MM fonts within the SFNT container, my proposal would be to dig out the old MMFX, MMSD and fvar table specs along with the pre-OpenType 1.25 CFF table spec (I have them -- retrieved them from archive.org! :) ), rename that CFF table to "MMCF" so it doesn't conflict with the official CFF table, and shape up a proposal. I'm not sure whether technically, the Apple gvar proposal is simpler to implement than Adobe's MM model or vice versa. But what I know is: 1. The web browser's window is an inherently dynamic canvas where content can be moved, scaled, reflowed dynamically. Most web assets these days can be made responsive -- only web fonts cannot. 2. Either of these variable font models has existing stable specs which can be implemented relatively straight away in the major browsers. So we don't have to sit down at a drafting board and invent anything from scratch. 3. Variable font models offer tremendous font compression potentials: you only serve one font file per entire family. No WOFF 2.0 can beat that! :) 4. The web browsers could easily convert the variable font into a regular "static" font in memory and use the OS's rendering subsystems. Since those variable font models are monochrome and outline-based, there is much less potential for a huge debate than there is with SVG inside of the SFNT container. 5. Many type designers are already familiar with the design paradigm, at least with the MM paradigm. Most type design applications offer this way of working, and they could be extended relatively easily to output such fonts. 6. None of this invalidates or conflicts with anything that is out there already, or is being done. Surely, work would need to be done in the CSS spec to perhaps extend the parameters such as font-weight or font-stretch, or perhaps invent some new ones, to control this. But I think it's very much worthwhile. There may be caveats on the way. But I think it's a relatively low-hanging fruit. :) Best, Adam -- May success attend your efforts, -- Adam Twardoch (Remove "list." from e-mail address to contact me directly.)
Received on Thursday, 20 June 2013 04:03:42 UTC