axisregistry icon indicating copy to clipboard operation
axisregistry copied to clipboard

Add Vertical Extension [ YEXT ] axis

Open davelab6 opened this issue 2 years ago • 13 comments

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

Screenshot 2023-06-05 at 14 09 11 Screenshot 2023-06-05 at 14 09 16

PlaypenSans-Extension

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: ""

davelab6 avatar Jun 05 '23 20:06 davelab6

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.

vv-monsalve avatar Jun 07 '23 17:06 vv-monsalve

I suggest naming it Y Pen Extensions

This seems too family specific. Let's discuss with Evan today :)

davelab6 avatar Jun 09 '23 15:06 davelab6

After the last Axis review this are:

tag: "YEXT"
display_name: "Vertical Extensions"

vv-monsalve avatar Jun 22 '23 00:06 vv-monsalve

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

Screen Shot 2023-06-21 at 19 56 27 Screen Shot 2023-06-21 at 19 52 37

vv-monsalve avatar Jun 22 '23 01:06 vv-monsalve

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

VExtension-axis-revision

vv-monsalve avatar Jun 22 '23 04:06 vv-monsalve

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."

vv-monsalve avatar Jun 30 '23 17:06 vv-monsalve

"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%."

davelab6 avatar Jun 30 '23 17:06 davelab6

YPEX based on github.com/googlefonts/playpen tag: "YEXT"

tag: "YPEX" ?

kenmcd avatar Jun 30 '23 19:06 kenmcd

What's the P in YPEX?

davelab6 avatar Jun 30 '23 21:06 davelab6

YPEX based on github.com/googlefonts/playpen tag: "YEXT"

tag: "YPEX" ?

Amended

vv-monsalve avatar Jun 30 '23 21:06 vv-monsalve

What's the P in YPEX?

It was a typo vestige of when I was proposing "Vertical Pen Extensions"

vv-monsalve avatar Jun 30 '23 21:06 vv-monsalve

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%."

davelab6 avatar Apr 12 '24 18:04 davelab6

We'll add it in the future when the big PW family is ready to be onboarded.

vv-monsalve avatar Apr 12 '24 18:04 vv-monsalve

Emery Cubic https://github.com/google/fonts/issues/6124 needs this axis to be registered

yanone avatar Nov 15 '24 12:11 yanone

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.

vv-monsalve avatar Nov 15 '24 15:11 vv-monsalve

@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

Image

vv-monsalve avatar Nov 20 '24 21:11 vv-monsalve

@vv-monsalve I updated Emery Cubic to conform to the axis registry for both YEXT and SHRP axes (0-100 instead of 1-1000)

yanone avatar Nov 21 '24 14:11 yanone

I'm waiting for the PR to be approved to continue the registration process.

vv-monsalve avatar Nov 21 '24 15:11 vv-monsalve