Spec: How to order font name particles?
davelab6 opened this issue · 4 comments
For ordering font naming particles, I think
- family
- optical-size
- weight
- width
- slant
- italic
- custom
is good; this seems to roughly adhere to the English grammatical rule for order of adjectives, and perhaps $custom has to do so recursively as well.
Here's the rule:
a book called The Elements of Eloquence: How to Turn the Perfect English Phrase. Adjectives, writes the author, professional stickler Mark Forsyth, “absolutely have to be in this order:
- opinion
- size
- age
- shape
- colour
- origin
- material
- purpose
- Noun
So you can have a lovely little old rectangular green French silver whittling knife. But if you mess with that order in the slightest you’ll sound like a maniac.”
Microsoft uses "WWS" for Weight, Width, Slope, and I think for families with both slant and italic, slant should be first, as slant is about shape, while italic is sort of more about 'material' (or even origin!)
Interesting way to frame this theory.
Typographically, “italic” tends to be more about “purpose” than material (it’s all digital) or origin (despite the naming, none of my type is made in Italy). The primary purpose of italics is to provide a modified typographic emphasis on certain text.
I haven’t simulated it in my head all the way through, but I suspect that most people would be confused if the slant were mentioned before width & weight.
Another way to look at this is: how much does each parameter effect the layout or overall line length? In that sense, the typical order is probably:
- Width
- Weight
- Italic
- Slant
But, it’s hard to say where Optical Size would tend to land in there.
So really, it’s probably more about a user's “decision tree.” How does the typical type user filter down to what they want for a given typographic moment? This might be:
- Optical size (how big is this element?)
- Width (how much room do I have?)
- Weight (how intense should this be?)
- Italic (is it special?)
- Slant (should it be modified visually?)
I haven’t simulated it in my head all the way through, but I suspect that most people would be confused if the slant were mentioned before width & weight.
Sorry, I just meant between slant and italic, which should be 1st/2nd
it’s probably more about a user's “decision tree.”
@dberlow calls this “the mantra,” I think :)
Eg
Roboto Latin 36pt Bold Condensed 9deg Italic Positive Grade
We currently have the following:
opsz wdth wght
https://github.com/googlefonts/gf-docs/tree/master/Spec#instance-names
I'm starting to believe we shouldn't include every axis particle in the instance names. I'd prefer the non-registered axes to be included in the STAT table only. Even if no apps currently use the STAT, users still have sliders in DTP apps to control these axes.
I honestly think we should make a decent test case and run a UX test before we make a decision on this.
From my point of view, I don't want to see hundreds of instances. If i want precise control, I'll adjust a slider.
By not including every particle, we'll avoid font menu name clipping as well. "Roboto Latin 36pt Bold Condensed 9deg Italic Positive Grade" is definatley going to clip :-)