FontBureau / Opentype-1.8-Axis-Proposal

Apache License 2.0
0 stars 1 forks source link

Proposal Draft #47

Closed sberlow closed 6 years ago

sberlow commented 6 years ago

Administrative Information

Proposers name: Sam Berlow Vendor affiliation: Type Network Proposal name: Parametric Axes Date of submission: December 2, 2017 New or revised proposal: 1.0 Previous revision date: N/A

General Technical Information

Overview: Typographers are familiar with many attributes of typefaces that express the Latin writing system. It is useful for them be available as variation axes so that typographers can control them precisely.

Some attributes are already recorded in fonts conforming to the OpenType v1.0 specification, as values in the OS/2 table (e.g. uppercase cap-height, lowercase x-height, or ascender/descender values.) This group proposes new axes for these values. ytlc, ytuc, ytde, ytas

It also includes axes for other aspects that are inherent to all writing systems and specific to Latin: Controlling opaque or transparent areas in the X or Y dimensions. xtra, xopq, ytra, yopq,

The OpenType v1.8.0 specification already offers registered (interoperable) axes for weight, width, and optical size. These axes can be created by composing the axes proposed in this section. This technique of constructing those 'higher level' axes by blending together 'lower level' axes means that typographers can control them with high precision.

This set of axes form an inter-related and gestalt system. While it is useful for each of attributes to be available as variation axis, there is even greater value in having them form a cohesive system. As a set, a network effect is at play. The functionality for typographers increases exponentially as each attribute can be combined with the others, creating myriad of possibilities. Registration in the OpenType specification will mean that this system becomes interoperable.

Related axes: xtra, xopq, ytra, yopq, ytlc, ytuc, ytde, ytas

Axis type: Optical axes

Proposed Axis Details

Tag: xtra, xopq, ytra, yopq, ytlc, ytuc, ytde, ytas

Name: x Transparent y Transparent x Opaque y Opaque y Transparent Lowercase y Transparent Uppercase y Transparent Descenders y Transparent Ascenders

Description and Valid numeric range: xtra: assigns a “white” per mille value to each instance of the design space Values must be in the range -1000 to 2000

xopq: assigns a “black” per mille value to each instance of the design space Values must be in the range -1000 to 2000

ytra: assigns an overall “white” per mille value to each instance Values must be in the range 0 to 2000

yopq: assigns a “black” per mille value to each instance of the design space Values must be in the range -1000 to 2000

ytlc: assigns a “white” per mille value to each instance of the design space Values must be in the range 0 to 1000

ytuc: assigns a “black” per mille value to each instance of the design space Values must be in the range -1000 to 1000

ytde: assigns “white” per mille value for each Uppercase Height in the design space Values must be in the range -1000 to 0

ytas: assigns a “white” per mille value to each instance of the design space Values must be in the range 0 to 1000

Scale interpretation: Values can be interpreted as per-mille-of-em

Recommended or required “Regular” value: n/a

Suggested programmatic interactions: xtra: justification of text, Replace Horizontal Scale xopq: weight Matching ytra: linespacing yopq: contrasting, screen legibility ytlc: height matching ytuc: height matching ytde: linespacing ytas: linespacing

UI recommendations: Users may choose to program a variant in connection to direct or conjunctive input for a page description language, or via a user interface

Script or language considerations: n/a

Additional information: Link to Demo page

Justification

Vendor commitments: The Font Bureau, Inc, TYPETR, Google Fonts,

Conventionality benefits: This proposal does not seek to classify the designs of typefaces parametrically, only what the values of the parameters are. Furthermore, it is offered as a beginning, suggesting the need for—but not containing—suggestions for many important attributes of non-Latin fonts.

The registration of the axes here is also intended to be used as part of a system including the registration of what function an axis performs for programs and/or users along the existing path from script selection to the rendered glyph in a document, aka the Mantra. Documentation of that part of the system, including the registration of what function an axis provides, is still in development and will follow soon.

Type users are familiar with the attributes of a typeface family that combine to make up its appearance. Traditionally, these attributes are available as named and instantiated styles in font families. Some of these attributes are already recorded in fonts conforming to the OpenType v1.0 specification, as values in the OS/2 table, and in other tables of the SFNT format in general.

Today's font families contain instances pertaining to attributes of registered axes of OpenType, like width, weight, and optical size. In addition, some existing font families contain instances pertaining to grades, descender length, multi-script font mixing for different vertical proportions, and font families contain instances made for specific output, or with specific data to suite particular platform requirements.

Interoperability benefits: By naming these axes in a consistent manner, it will allow for users, and developers to manipulate fundamental elements of type in order to create better typography.

Ascenders and Descenders - the manipulation of these two elements will allow for more legible type at small sizes and more responsive type at larger sizes. These elements should not be bound to just optical size.

Lowercase and Uppercase - the manipulation of these to glyphs in the y direction the allow for expanded design space, adjustment to glyphs in relation to other latin glyphs as well as other languages.

X and Y - the manipulations to the transparent and opaque controls of a typeface enable the user to alter specific parts of glyphs for vertical and horizontal requirements. Height and width of glyphs can be manipulated for the benefits of legibility, justification, and design space.

As universal elements in glyphs, naming these axes in a consistent manner will allow for universally better typography.

ghost commented 6 years ago

Here it is: https://github.com/TypeNetwork/Opentype-1.8-Axis-Proposal/blob/Microsoft-Proposal/microsoft-proposal/ProposalSummary.md

sberlow commented 6 years ago

link is not working