Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[css-fonts] generic font families may vs should map to multiple concrete font families #5053

Open
frivoal opened this issue May 8, 2020 · 9 comments
Assignees

Comments

@frivoal
Copy link
Collaborator

frivoal commented May 8, 2020

This issue is partly relevant for existing generic font families, but I think gets more pressing if we decide we're going to add more.

css-fonts-4 says:

However, a single generic font family may be a composite face combining different typefaces based on such things as the Unicode range of the character …

I like that this is a possibility, but I think in some cases it ought to stronger than a "may", and probably a "should", for generic font families that are meant to be international.

For instance, it doesn't seem particularly important that fangsong, or a possible other language / script specific additions like nastaliq.

However, for generic font families that are meaningful across multiple scripts (sans serif, rounded…), then I think it should be a composite face trying to cover a broad range of Unicode.

It feels like be able to make that distinction, we'd have to classify generics into "general-purpose generics" and "script-specific generics". That doesn't seem particularly hard at the moment, but with a bigger set, we might get into gray areas.

@frivoal frivoal added the css-fonts-4 Current Work label May 8, 2020
@svgeesus
Copy link
Contributor

It feels like be able to make that distinction, we'd have to classify generics into "general-purpose generics" and "script-specific generics".

It does and I think that would be valuable.

Although we need to guard against the implicit bias that latin-script-specific === general-purpose.

@svgeesus svgeesus self-assigned this Feb 2, 2021
@svgeesus
Copy link
Contributor

svgeesus commented Feb 2, 2021

Okay, I plan to attempt some "should" wording

@svgeesus
Copy link
Contributor

svgeesus commented Jun 9, 2021

for generic font families that are meaningful across multiple scripts

we'd have to classify generics into "general-purpose generics" and "script-specific generics"

we need to guard against the implicit bias that latin-script-specific === general-purpose.

This needs a concrete proposal for which generics are general purpose which is harder than it looks. Is cursive general purpose? Can we quietly kill fantasy in the same rewrite?

@svgeesus
Copy link
Contributor

svgeesus commented Jun 19, 2021

Ok since it is easier to criticize a proposal than create one, I propose that "general purpose" be:

  • serif
  • sans-serif
  • monospace
  • rounded
  • system-ui
  • ui-serif
  • ui-sans-serif
  • ui-monospace
  • ui-rounded

which leaves, as "script-specific" (or at least, not necessarily defined or useful for all scripts)

  • cursive
  • fantasy
  • emoji (??)
  • math
  • fangsong
  • nastaliq

Related: [meta] [css-fonts] Criteria for generic font families

@frivoal
Copy link
Collaborator Author

frivoal commented Jun 21, 2021

The proposed "general purpose" above makes sense to me. For the second category, a few comments:

  • Even if the connotations of using a cursive script can be very different from script to script, then notion that there exists a cursive variants seems applicable to most (all?) writing systems. What does classifying it as "script-specific" get us?
  • I don't understand the "emoji" font family. Emoji is more of a set of character than a type of fonts. Or is it meant to be used so that those unicode characters that can have either an emoji rendering or a symbol-like rendering get the emoji variant? If that's the case, calling it "script specific" is probably reasonable, but then we'd probably want the alternative too. And it should be made explicit in the spec. And if it's something else, I don't know what.
  • putting fantasy in "script-specific" is probably fine. But putting it in "deprecated", with behavior up to the UA (including an allowance to just ignore it) might work too.

@r12a
Copy link
Contributor

r12a commented Jun 21, 2021

Here are a couple of thoughts:

  1. 'serif' and 'sans-serif' only apply to a small handful of writing scripts. For my font-finder tool i ended up dividing fonts into 'modulated' and 'monoline' (although some were a bit of both). Serif and sans-serif map mostly to those two classifications – at least they do so better than serif and sans-serif map to most non-latin fonts.
  2. i classified the fonts in my lists by various writing styles, such as arabic thuluth, ruqa, kano, kufi, etc. Anything that didn't have an alternative 'generic type' was then classified as either monoline or modulated. I'm thinking of redoing those groupings to fall better along writing style lines, so don't get hung up on the current classifications. What does come out of that, however, is that a ruqa font would never be classified as a kufi or nastaliq font: those are exclusive denominations. However, a ruqa font could be either monoline or modulated. So this suggests that the distinction kind of holds as described above, although i wouldn't use those terms. I think that 'general purpose' should possibly be 'stylised', though 'script-specific' may be ok. But i would mover cursive and fantasy into the stylised bucket.
  3. One other category that can also be a script-specific style and a modulated/monoline style is handwritten. Also my (not very scientific) group of 'heavy' styles may be the same. So we may need a 3rd dimension for classifying these things.

@svgeesus
Copy link
Contributor

Even if the connotations of using a cursive script can be very different from script to script, then notion that there exists a cursive variants seems applicable to most (all?) writing systems. What does classifying it as "script-specific" get us?

It means I don't believe that it is applicable to most writing systems. Remember the Kai != Cursive discussion. Cursive may somewhat map to "brush or pen strokes" but mapping that in turn to "informal, playful" is culturally specific.

And if it's something else, I don't know what.

I don't recall the discussions around adding that one and confess to not really understanding it. It it equates to "colorful, not monochrome" then it should be renamed.

putting fantasy in "script-specific" is probably fine. But putting it in "deprecated", with behavior up to the UA (including an allowance to just ignore it) might work too.

Can we kill it with fire? Please?

@svgeesus
Copy link
Contributor

@r12a moduated vs. monoline is a much nicer classification, agreed - although we have an unfortunate quarter-century of legacy content that depends on the Western-centric terms (and in fact depends on serif having the exact width metrics of Times New Roman).

I wonder though if there is still value in introducing those two as generics. Or is it more of a continuum?

@svgeesus
Copy link
Contributor

svgeesus commented Nov 8, 2023

This example mentions mapping to multiple concrete families, but is non-normative as it is an example:

The script above should not have any knowledge of how ''system-ui''
is expanded to include a collection of system user interface fonts.
In particular, the above script should yield a result of "system-ui" on every platform.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants