0xType / 0xProto

A programming font focused on source code legibility
SIL Open Font License 1.1
1.53k stars 14 forks source link

Add bold weight #79

Closed matype closed 1 week ago

matype commented 1 month ago

What

Try to make bold weight experimentally.

ref: https://github.com/0xType/0xProto/issues/8#issuecomment-2252180239

mcchrish commented 1 month ago

Thank for considering! And I really like this font so far. It's the only font that got me out of Iosevka.

matype commented 1 month ago

I've finished making the Roman (non-italicised) Bold all the way through!

image

And this is a display confirmation in VS Code. if and function, etc. are Bold.

image

The current 0xProto Bold .otf file is attached for you to try if you are interested.

0xProto-Bold-beta-1.otf.zip

matype commented 1 month ago

By the way, I will not be making a Bold Italic for 0xProto.

Because 0xProto is a programming font, and while Bold or Italic is necessary as a means of highlighting other than by color, wouldn't a Bold and Italic family be fine without it?

I know that it is not a problem to have. But I have a lot of other projects I want to do besides 0xProto, and I don't want to add as many things as possible that I need to keep maintaining.

jastko commented 1 month ago

Under Linux, in Konsole - KDE's Terminal Emulator, Bold weight has different line spacing than Regular.

https://github.com/user-attachments/assets/9472dacb-1761-4514-a1f4-6e520f74855b

FontForge shows different metrics for Regular(left)/Bold(right) wieghts. protoboldfont_20240813_080930

Font version: 2.100 Regular/Beta-1 for Bold

matype commented 1 month ago

@jastko Thanks for the feedback!

I've fixed it and you can check it with the font file here. 0xProto-Bold-beta-2.zip

image

I also checked this .otf in the tool I use and the metrics in the OS/2 Table are the same.

jastko commented 1 month ago

Line spacing has been fixed, but now Konsole doesn't distinguish between Regular and Bold weight.

https://github.com/user-attachments/assets/94df85d6-64dd-4c2b-9659-eb77a936e187

It's probably caused, by incorrectly set weight. FontForge shows, that WeihgtClass is set to 400. protoboldfont_weightclass_20240813_175203

In previous version(Beta-1), WeightClass was set to 700.

distefam commented 1 month ago

This is great, thank you! I've been experimenting with using a colorscheme called Zenbones that relies on font styles more than colors. I can confirm that the new beta 2 version doesn't distinguish between regular and bold weights correctly.

matype commented 1 month ago

@distefam Thank you for the feedback.

I can confirm that the new beta 2 version doesn't distinguish between regular and bold weights correctly.

Probably for the same reason as https://github.com/0xType/0xProto/issues/79#issuecomment-2286635928

matype commented 1 month ago

Fixed in beta-3! I think this will work well now. (I won't post a screenshot, but I have checked the OS/2 table for the generated font files.)

0xProto-Bold-beta-3.zip

distefam commented 1 month ago

I just tried beta 3, and I can say that the bold and regular fonts both render correctly and have proper baseline alignment. Thank you!

distefam commented 1 month ago

Actually, I may have spoken too soon. It appears that now the Italic variant, which I had retained from the last release, displays with a different baseline: image

matype commented 1 month ago

I think the metrics changed when the bold was added, so using v2.100 italic and beta regular/ bold would cause the baseline to be misaligned.

I will try to align them in the official release of Bold, so until then please use v2.100 Regular.

jastko commented 1 month ago

I can confirm. Regular/Bold(ttf/otf) font metrics have changed back to those from Beta 1. VendorID has also changed, so there are now two instances of 0xProto. Beta3 fonts have VendorID set to UKWN.

Picture below.

proto_beta3_vendorid_20240813_214214

matype commented 1 month ago

Great.

here are now two instances of 0xProto. Beta3 fonts have VendorID set to UKWN.

I was concerned that the achVendID in the OS/2 table was "0xTy" instead of 0xType, so I checked and found that it was the Vendor ID registered with Microsoft and not 0xType, which I intentionally removed in Beta 3.

arjpar commented 2 weeks ago

wouldn't a Bold and Italic family be fine without it?

@matype While Bold Italic is rare, I think it would be good to have it as the default styles/weights operations you can do is Bold, Italicize, and the combination of the 2 (Bold Italic). Some themes probably use Bold Italic, but it's rare I think. I still think it would be good to have Bold Italic as it would make 0xProto feature complete in that sense, but it doesn't have to be immediate.

matype commented 1 week ago

Finally released! https://github.com/0xType/0xProto/releases/tag/2.200

@arjpar If I ever create a Bold Italic family, I'll create another issue at that time.