Add Vertical Extension [ YEXT ] axis
Requirements
- [x] I have inspected the current Axis Registry and there is not a registered custom axis that could be used for the variation purpose on the upcoming font project.
- [x] The metadata fields of the proposed axis meet the Axis Requirements as specified in the Protocol (linked above).
Font project(s) using the axis
Playpen, currently in a private repo
Short description of what the axis does
The Playpen fonts have an "Extenders" axis that is essentially a blend or combination of the YTAS and YTDE axes.
Values are absolute, per-mille-of-em, measuring distance from baseline to y-max.
Image
Why is the axis needed
To make the user experience more simple, varying ascender and descender lengths are combined.
Axis metadata fields
# YTEX based on github.com/googlefonts/playpen
tag: "YTEX"
display_name: "Extenders"
min_value: 0
default_value: 300
max_value: 1000
precision: 0
fallback {
name: "Default"
value: 0
}
fallback_only: false
description: ""
Values are absolute, per-mille-of-em, measuring distance from baseline to y-max.
The Extenders axis operates over strokes that go both up (above xheight) and down (below baseline) to y-max. ~~So the axis requires a range from positive (up) to negative (down) values.~~*
To make the user experience more simple, varying ascender and descender lengths are combined.
I would add: "To make the user experience more simple. The axis extends ascender and descender strokes beyond standard writing conventions to specific lengths to meet the teaching process needs."
Now, Inspecting the name again, I wonder if "Extenders" is too generic. If we are going to make this friendly and to differentiate this from the existent parametric axes as well as any other "extender" axis that may be needed (eg. from a particular script), I suggest naming it Y Pen Extensions with YPEX tag.
# YPEX based on github.com/googlefonts/playpen
tag: "YPEX"
display_name: "Vertical Pen Extensions"
min_value: 0
default_value: 300
max_value: 1000
precision: 0
fallback {
name: "Default"
value: 0
}
fallback_only: false
description: "The axis extends ascender and descender strokes beyond standard writing conventions."
- The axis modifies ascenders and descenders simultaneously, so no negative range value is needed.
I suggest naming it Y Pen Extensions
This seems too family specific. Let's discuss with Evan today :)
After the last Axis review this are:
tag: "YEXT"
display_name: "Vertical Extensions"
Revision to axis type and range
There was a discussion on if it should be a relative axis (percentage range).
The axis controls ascenders and descenders simultaneously, modifying them in the same proportion, but measuring from different relative points: baseline to descender and x-height to ascenders. Which would make this axis relative instead of absolute.
If measured from one unique reference point (the baseline), the ascender value should sum the x-height. That is, when the descenders are at 300, the ascenders' absolute value is 700
Vertical Metrics implications
Given the unusually high proportions for the extensions, this axis adds to the font; we should consider
- Making an exception to our Vertical Metrics specifications. Otherwise, if we use the ymax for the whole set, most variations per country would have a highly loose line-height.
- Using variable vertical metrics
We've agreed that this would be a Relative (percentage) axis. Description should be updated
# YEXT based on github.com/googlefonts/playpen
tag: "YEXT"
display_name: "Vertical Extensions"
min_value: 0
default_value: 0
max_value: 100
precision: 0
fallback {
name: "Default"
value: 0
}
fallback_only: false
#description: "The axis extends ascender and descender strokes beyond standard writing conventions."
"The axis extends ascender and descender strokes beyond standard writing conventions."
I propose:
"The axis extends glyphs in the Y dimension, such as the Cap Height, Ascender and Descender lengths. This is a relative axis, starting at 0% and going to the typeface's individual maximum extent at 100%."
YPEX based on github.com/googlefonts/playpen tag: "YEXT"
tag: "YPEX" ?
What's the P in YPEX?
YPEX based on github.com/googlefonts/playpen tag: "YEXT"
tag: "YPEX"?
Amended
What's the P in YPEX?
It was a typo vestige of when I was proposing "Vertical Pen Extensions"
Evan and I synced up today and we re-confirmed this is good to go with a percent; also no plural for Extension; and YEXT is not following the Font Bureau parametric system naming (which would be Y as the first character for dimension and T as the second character for acting on transparency not ink)
# YEXT based on github.com/googlefonts/playpen
tag: "YEXT"
display_name: "Vertical Extension"
min_value: 0
default_value: 0
max_value: 100
precision: 0
fallback {
name: "Default"
value: 0
}
fallback_only: false
description: "The axis extends glyphs in the Y dimension, such as the
Cap Height, Ascender and Descender lengths. This is a relative axis,
starting at 0% and going to the typeface's individual maximum
extent at 100%."
We'll add it in the future when the big PW family is ready to be onboarded.
Emery Cubic https://github.com/google/fonts/issues/6124 needs this axis to be registered
Emery Cubic google/fonts#6124 needs this axis to be registered
Good! Having a font in preparation to be onboarded using the axis makes it the right time to include it. I'll prepare the PR for it.
@yanone I've opened the PR for this axis. However, please review its implementation in Emery Cubic font.
As you can see in the above comment, the latest definition for this axis makes it a percentage axis, so the default value is expected to be 0, and the maximum is 100. Emery is currently going 1--1000
@vv-monsalve I updated Emery Cubic to conform to the axis registry for both YEXT and SHRP axes (0-100 instead of 1-1000)
I'm waiting for the PR to be approved to continue the registration process.