googlefonts / googlefonts/axisregistry
Consider adding "optional fallback" to axis definitions
- Dominant language
- Rust
- Stars
- 43
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the issue**
There are situations where we may want to add more instances to a font without affecting how instances are cut in the pipeline.
Having the "optional fallback" in the axis definitions would allow that and also serve as a standard for those instance names that are not covered by "fallback" entries.
**Example**
Consider a case where a font has a range of 1-1000 in the weight axis, but the axis registry only covers the range 100-900.
The 1 and 1000 instances are not defined in the axis registry, so we don't name those extremes in the font. However, if we don't, then our min and max for this axis in the STAT table will be uncovered. In this case, using a range in the STAT is also not appropriate - too big of a range.
This is being checked by FB here https://font-bakery.readthedocs.io/en/stable/fontbakery/profiles/googlefonts.html#com.google.fonts/check/STAT
To address that fail, we could introduce new instances that are not defined in the axis registry, which is not ideal, as we would introduce something that is not standardised. At the same time, we might not introduce more "fallback" entries. This is where "optional fallback" for additional instances would come in handy. If 1 "Hairline" and something like 1000 "UltraBlack" or "UltraHeavy" are defined as optional fallbacks, we have a standard name for this place on the axis but, at the same time, wouldn't cut too many static instances.
It could be even more helpful for novelty and custom axes.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the axis registry definitions and the linked Font Bakery STAT check to understand how fallback entries are currently interpreted. Done should include an agreed definition for optional fallback entries, their effect on instance naming and STAT coverage, and a clear scope for supporting them on standard and custom axes.
Written by the indexing model from the issue text.
Assessment
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100