Press enter or click to view image in full size
We’re standing on the edge of a revolution in typography and design. The proposed extensions to the OpenType specification are nothing short of a leap in the evolution of the industry. Imagine this: fonts that are more adaptable, more versatile, and more supportive of a spectrum of languages and writing systems. This isn’t just about aesthetics or functionality. This is also about cultural diversity, creative expression, and potentially opening up economic opportunities in the typography and design industries.
Transcending Invisible Boundaries
The ‘Beyond 64K’ proposal is a great example of these advancements. It enables fonts to support up to 16,777,216 (24-bit) characters — a significant difference from the previous limit of 65,535 (16-bit). This feature is especially advantageous for designing complex scripts, including Arabic, CJK (Chinese, Japanese, Korean), and Indic scripts.
However, bigger fonts could potentially result in slower load times and distribution difficulties. To address this issue, the proposals introduce, among other features, variable components. These allow axes to be reused throughout a typeface design, simplifying the production of many of the world’s scripts and reducing file sizes.
Smart usage of variable components in font development can further reduce the file size. Early experiments with CJK scripts have shown reductions of up to 80%.
Streamlining Variable Font Design
The proposed avar2 extension is another important update. It offers multiple benefits for the design of variable fonts. By allowing for more efficient and flexible axis remapping, avar2 reduces the need for redundant data in the font file. This results in smaller font files that are easier to distribute and download.
For example, a project using only a few static fonts in a family may not see file size savings. However, by enabling the reuse of the same variations data in several axes, avar2 can reduce the drawing that goes into a variable font and the deltas to represent them. This supports further file size savings.
Fostering Higher Fidelity
The extension to the glyf table, which now supports cubic Bezier curves, provides a more accurate representation of outlines. This is particularly important for fonts with lower units-per-EM, very light weights, and variable fonts with numerous interacting masters.
With this extension, font designers could potentially output precisely accurate outlines, avoiding the conversion of their cubic Beziers to quadratic Beziers. These results would be more harmonised and consistent type designs.
Elevating Textual Harmony and Aesthetics
The variable justification axis, another potent tool soon to be at our disposal, enables multiple typographic justification treatments simultaneously.
In Arabic typography, for instance, the use of Kashida is often combined with other justification treatments to create visually harmonious and readable text. By utilizing variable justification, designers can have greater control over the text’s appearance, producing more dynamic, visually appealing, and effective layouts.
Pioneering Font Rendering for Complex Scripts
The proposed wasm [WebAssembly] shaper in Harfbuzz is another exciting innovation that can improve font rendering by allowing fonts to provide their own shaping logic as WebAssembly modules.
This innovative ‘shaping-in-font’ approach allows fonts to embed their own shaping logic as WebAssembly modules, which can be executed by browsers or other software applications that support WebAssembly. This eliminates the need for the end-user or app bundle to install or carry a separate shaper if the one provided by the operating system is too limited.
Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size
Navigating the Potential Security Risks
These measures should probably include implementing sandboxing mechanisms to prevent the WebAssembly code from accessing or modifying system resources, using memory-safe programming languages to write the WebAssembly code, and regularly auditing the code for potential security vulnerabilities.
These precautions aren’t new to font rendering technologies, and similar security measures have been taken for technologies like OpenType. It’s crucial to stay alert to potential security risks and address them proactively.
Striking a Balance between Innovation and Compatibility
While the proposed extensions to the OpenType font specification offer plenty of benefits for typography and design, their adoption will require updates to operating systems, rasterizers, shapers, and font editor software. This could pose challenges in terms of compatibility. We must keep in mind the potential risks of fragmentation within the typography ecosystem due to compatibility issues with older systems and software.
Collaborating for a Cohesive Typographic Ecosystem
As we navigate these challenges, industry collaboration is the key. Despite the challenges, the benefits of adopting these changes ultimately outweigh the challenges and can lead to a more innovative and inclusive typography industry.
By working together to address these challenges and focus on education and training, we can prevent this.
With the opportunities presented by these updates, designers and developers can contribute to a more inclusive and diverse typographic landscape that supports global communication, cultural preservation, and artistic expression. Let’s embrace these proposals and work together to pave the way for a more accessible, efficient, and innovative typography industry.
Press enter or click to view image in full size
A heartfelt shout-out to
and Dave Crossland — your support and insights throughout the writing process of this article enriched the content significantly. Thank you!
Disclaimer: This article was partly written with the use of AI-assistive technology.
Sources:
avar2: https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md
Cubic glyf outlines: https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1-cubicOutlines.md
VarComposites: https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1-varComposites.md
beyond-64k: https://github.com/harfbuzz/boring-expansion-spec/blob/main/beyond-64k.md
oxidize: github.com/googlefonts/oxidize
wasm examples: https://github.com/simoncozens/wasm-examples