canonical / Ubuntu-Sans-fonts

Other
54 stars 4 forks source link

Font weights are too light #99

Open m4rc1e opened 1 year ago

m4rc1e commented 1 year ago

Somewhat related to #82.

The font weights are off. The Regular is now much lighter than the family with serve on Google Fonts. Same can be said for Medium, Bold etc.

Screenshot 2023-07-05 at 13 49 31

old=bottom, new=top

I haven't looked at this family in 8+ years but I think the original static fonts were not Multiple Master friendly.

djrrb commented 1 year ago

Lightening the Regular weight and rearranging the others accordingly was an intentional change requested by Canonical to adapt the font to current UI tastes / screen resolutions. The original Regular is now closer to wght=473.

I’m not sure how this and other significant changes should be handled in respect to the upgrade to Google Fonts, but these are the weights that Canonical plans to use for Ubuntu moving forward.

djrrb commented 1 year ago

(And you are correct that the original fonts were not Multiple Master friendly...it took a bit of wrangling! 😅)

m4rc1e commented 1 year ago

Thank you for the explanation.

I worry I'm going to open issues for regressions which have been approved. Do you have a doc anywhere of known changes?

djrrb commented 1 year ago

I’m not sure I have much aside from this summary in the log: https://github.com/djrrb/google-fonts/blob/main/ufl/ubuntu/FONTLOG.txt#L29-L43

Were you looking for something more detailed? Also happy to quickly talk through the changes on a call if that’s quicker.

fitojb commented 1 year ago

Even Canonical web designers have found (tacitly, they won’t admit it verbally, but their actions show otherwise) the new weight distribution to be too light; my evidence for asserting this is that the new Vanilla Design System version 4.0 uses a weight of 180 instead of a more intuitive 100 for H2 headings. This kind of weight finessing isn’t available to desktop-application libraries like GTK and Qt, of course, so it’s become a pain point when used as a UI font. Ubuntu OS users need better defaults, as I’ve expressed here.

djrrb commented 1 year ago

@fitojb I don’t think it’s my place to comment on the old vs new weight arrangement, but I hope it’s at least a little helpful to mention the following:

the new Vanilla Design System version 4.0 uses a weight of 180 instead of a more intuitive 100 for H2 headings.

We just added SemiLight (200) weight, very close to 180: https://github.com/canonical/Ubuntu-fonts/issues/97#issuecomment-1625538124

I placed the SemiLight exactly at the midpoint between Thin and Light, which I think is a sensible choice for the type family. But other placements are possible if the design team requests it.

This kind of weight finessing isn’t available to desktop-application libraries like GTK and Qt,

Maybe it should be?

so it’s become a pain point when used as a UI font.

I get it. FWIW it is possible to generate new static fonts for off-instance locations directly from the variable fonts. fontTools varLib.instancer provides a command line interface, and FontGauntlet offers a “Generate Static Font File” button.

As a quick demo, here are instancer-generated fonts where I also changed the menu names to “Ubuntu 180” to distinguish them: Ubuntu180.zip

This is probably worth adding to the readme, so folks know it’s an option.

barmadrid commented 11 months ago

As a quick demo, here are instancer-generated fonts where I also changed the menu names to “Ubuntu 180” to distinguish them: Ubuntu180.zip

@djrrb This is really awesome. Can you please let me know the command used for Instancer to generate a specific weight and change font menu name? Couldn't figure it our from the docs :)

djrrb commented 11 months ago

@barmadrid

Here’s an example of how I used fontTools varLib.instancer, now included in this repo’s readme.

fonttools varLib.instancer Ubuntu[wdth,wght].ttf wdth=100 wght=473

I used the following process to change the menu names:

  1. ttx Ubuntu[wdth,wght].ttf converts the font to XML
  2. Open resulting Ubuntu[wdth,wght].ttx in a text editor
  3. Run a find/replace in the <name> table
  4. ttx Ubuntu[wdth,wght].ttx to convert it back to a TTF

I think you could also use pyftfeatfreeze to accomplish the same task.

pyftfeatfreeze -R 'Ubuntu/MyCustomFont' Ubuntu[wdth,wght].ttf MyCustomFont[wdth,wght].ttf

Hope that helps!

lyubomir-popov commented 9 months ago

Hi just seeing this discussion, I feel a bit of explanation is necessary when referencing Vanilla 4.0's font choices. We make use of the full range of weights in our design system, reserving Thin (100) for Display headings only (font-size 80px) (for example, see the canonical.com homepage). For smaller headings, including the aforementioned h2, we aim to achieve uniform (perceived, not mathematical) stem thickness for Display, h2, h4 and p styles, hence our more surgical use of values like 180.

This is very much tied to the font sizes we've selected for those headings.

fitojb commented 9 months ago

I reiterate: the web design aspect is amazing, but the font is now less usable for desktop users who can't access these variable weights. GTK as a technology is slowly being defunded by IBM/Red Hat, Qt also develops slowly, Flutter might be Killed By Google™ at any point. I don't trust any of them to implement the required changes to accommodate this particular font.

up-to-you commented 4 months ago

Was able to successfully convert variable fonts to wght=475 and to alter style names (R,B,I,BI). But it was quite time consuming task. I assume that everyone will be happy if you will just add Book/Text weight (473/475 up to your perfectional discretion). A lot of people on Linux are used to bolder MacOS font rendering, such that Ubuntu is one of the few (also Rubik is popular choice, but it's boring) fonts which has bolder (473/475) Regular style.