artandtype / Braah

An absolute mix of boldness and playfulness. Braah is a friendly display typeface designed by Ashish Kumar. Available in Gurmukhi script along with a Latin counterpart. *Braah font is inspired by the Baloo font designed by EkType.
SIL Open Font License 1.1
1 stars 1 forks source link

Vertical metrics #2

Closed emmamarichal closed 4 months ago

emmamarichal commented 1 year ago

Hello @artandtype,

I'm Emma, I work with Yanone in the GF team. We noticed that the v-metrics were not well balanced. We know it's probably because it's an indic font, but it would be better if you could center caps. As it's .vfb file, I let you make the changes. I calculate the new v-metrics, you just have to replace the older ones and export the fonts again. Thanks a lot, and don't hesitate if you have any questions 👍

Old ones typoAscender= 800 ypoDescender= -600 typoLineGap= 0

winAscent=1150 winDescent= 650

hheaAscender= 800 hheaDescender= -600

New ones typoAscender= 1018 ypoDescender= -382 typoLineGap= 0

winAscent=1150 winDescent= 650

hheaAscender= 1018 hheaDescender= -382

You can check this if you are interested on how I get this values: https://googlefonts.github.io/gf-guide/metrics.html#2-recalculating-the-vertical-metrics-for-an-upgraded-family

Cheers, Emma

artandtype commented 1 year ago

Hello Emma! Good to meet you, Thank you, I'll use the new metrics. It was off-centered because a few below-base matras overlapped with the above matras.
I'll replace it with new values and will let you know if there is any issue that occurs.

Also, I noticed some substitute features are not working properly when I check Braah on Google Fonts. Could you please help me resolve this issue as well? Attaching the issue and reference images.

Issues: 1 2

Reference image (Snapshot from project file): Reference image

emmamarichal commented 1 year ago

Hello @artandtype,

Ah, we had the same issue here: https://github.com/google/fonts/issues/6226 In Vina Sans, I fixed it by adding anchors on all accents and letters. Here is an example of Vina Sans: you need to have 2 anchors on each accent, to have a nice position for vietnamese double accents.

Capture d’écran 2023-05-01 à 10 32 00

I hope it will help you to solve this!

artandtype commented 1 year ago

Hi! Yes, I can do that :), But I had designed these glyphs separately to keep them aesthetically pleasing, I had resized and changed the angles of Diacritics to make it more balanced and harmonious.

Instead of putting anchors, can we solve it by 'GSUB'? If yes please let me know how can add that to the feature of the font.

emmamarichal commented 1 year ago

In fact, you can keep all your design, just turn off automatic alignment to be free to compose as you wish. This is what happens in Vina Sans, no accents are aligned, some are even decomposed. The anchors you are going to add are just to activate the mkmk features, so that when the glyphs are composed automatically, the accents are well placed. So in your case, I think adding anchors on brevecomb accent should be enough! Tell me when it's done, I'll run a QA on the exported fonts and see if it worked :)

artandtype commented 1 year ago

Hi, After changing this V-metrics getting some new fails. Please check the newly exported ttf and j.son report in the below link.

https://drive.google.com/drive/folders/1h5c3fhuWxQZp-pRjz5JE77lSzW1hbPEc?usp=share_link

emmamarichal commented 1 year ago

This is what I have (see the full repot below):

You can also easily remove these Warns:

Don't hesitate if you need anything else :)

Fontbakery report

Fontbakery version: 0.8.11

[1] Family checks
INFO: Check axis ordering on the STAT table. (com.google.fonts/check/STAT/axis_order)
* ℹ **INFO** From a total of 1 font files, 1 of them (100.00%) lack a STAT table. And these are the most common STAT axis orderings: [code: summary]

[21] BraahOne-Regular.ttf
🔥 FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. (com.google.fonts/check/vertical_metrics_regressions)
* 🔥 **FAIL** Braah One Regular: OS/2 sTypoAscender is 1018 when it should be 800 [code: bad-typo-ascender] * 🔥 **FAIL** Braah One Regular: OS/2 sTypoDescender is -382 when it should be -600 [code: bad-typo-descender] * 🔥 **FAIL** Braah One Regular: hhea Ascender is 1018 when it should be 800 [code: bad-hhea-ascender] * 🔥 **FAIL** Braah One Regular: hhea Descender is -382 when it should be -600 [code: bad-hhea-descender]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. (com.google.fonts/check/family/win_ascent_and_descent)
* 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 619, but got 0 instead. [code: descent]
🔥 FAIL: Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (com.google.fonts/check/soft_dotted)
* 🔥 **FAIL** The dot of soft dotted characters used in orthographies must disappear in the following strings: i̊ i̋ j̀ j́ j̃ j̄ j̈ į̀ į́ į̂ į̃ į̄ į̌ ị̀ ị́ ị̂ ị̃ ị̄ The dot of soft dotted characters should disappear in other cases, for example: i̇ ǐ i̒ i̛̇ i̛̊ i̛̋ ǐ̛ i̛̒ i̤̇ i̤̊ i̤̋ ǐ̤ i̤̒ i̦̇ i̦̊ i̦̋ ǐ̦ i̦̒ i̧̇ i̧̊ [code: soft-dotted]
WARN: Are there caret positions declared for every ligature? (com.google.fonts/check/ligature_carets)
* ⚠ **WARN** This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences? (com.google.fonts/check/kerning_for_non_ligated_sequences)
* ⚠ **WARN** GPOS table lacks kerning info for the following non-ligated sequences: - f + f - f + i - i + f - f + l - l + f - i + l - longs + t [code: lacks-kern-info]
WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table. (com.google.fonts/check/meta/script_lang_tags)
* ⚠ **WARN** This font file does not have a 'meta' table. [code: lacks-meta-table]
WARN: Check font contains no unreachable glyphs (com.google.fonts/check/unreachable_glyphs)
* ⚠ **WARN** The following glyphs could not be reached by codepoint or substitution rules: - AddakBindi.gm - DiaComma - capacute - capcaron - capcircumflex - capgrave - caphungarumlaut - capring - uni0326.salt [code: unreachable-glyphs]
WARN: Check if each glyph has the recommended amount of contours. (com.google.fonts/check/contour_count)
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct. The following glyphs do not have the recommended number of contours: - Glyph name: uni00AD Contours detected: 1 Expected: 0 - Glyph name: uni25CC Contours detected: 8 Expected: 16 or 12 - Glyph name: fi Contours detected: 2 Expected: 3 - Glyph name: uni00AD Contours detected: 1 Expected: 0 - Glyph name: uni25CC Contours detected: 8 Expected: 16 or 12 [code: contour-count]
WARN: Does the font contain a soft hyphen? (com.google.fonts/check/soft_hyphen)
* ⚠ **WARN** This font has a 'Soft Hyphen' character. [code: softhyphen]
WARN: Check math signs have the same width. (com.google.fonts/check/math_signs_width)
* ⚠ **WARN** The most common width is 539 among a set of 4 math glyphs. The following math glyphs have a different width, though: Width = 455: greater, less Width = 495: logicalnot Width = 540: plusminus Width = 542: multiply Width = 541: divide Width = 618: approxequal Width = 550: lessequal, greaterequal [code: width-outliers]
WARN: Does the font have a DSIG table? (com.google.fonts/check/dsig)
* ⚠ **WARN** This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
WARN: Check mark characters are in GDEF mark glyph class. (com.google.fonts/check/gdef_mark_chars)
* ⚠ **WARN** The following mark characters could be in the GDEF mark glyph class: acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 24 more. Use -F or --full-lists to disable shortening of long lists. [code: mark-chars]
WARN: Do any segments have colinear vectors? (com.google.fonts/check/outline_colinear_vectors)
* ⚠ **WARN** The following glyphs have colinear vectors: * M (U+004D): L<<619.0,402.0>--<614.0,385.0>> -> L<<614.0,385.0>--<494.0,60.0>> * W (U+0057): L<<215.0,636.0>--<293.0,221.0>> -> L<<293.0,221.0>--<295.0,200.0>> * W (U+0057): L<<559.0,626.0>--<674.0,221.0>> -> L<<674.0,221.0>--<678.0,200.0>> * W (U+0057): L<<682.0,200.0>--<684.0,221.0>> -> L<<684.0,221.0>--<759.0,636.0>> * Wacute (U+1E82): L<<215.0,636.0>--<293.0,221.0>> -> L<<293.0,221.0>--<295.0,200.0>> * Wacute (U+1E82): L<<559.0,626.0>--<674.0,221.0>> -> L<<674.0,221.0>--<678.0,200.0>> * Wacute (U+1E82): L<<682.0,200.0>--<684.0,221.0>> -> L<<684.0,221.0>--<759.0,636.0>> * Wcircumflex (U+0174): L<<215.0,636.0>--<293.0,221.0>> -> L<<293.0,221.0>--<295.0,200.0>> * Wcircumflex (U+0174): L<<559.0,626.0>--<674.0,221.0>> -> L<<674.0,221.0>--<678.0,200.0>> * Wcircumflex (U+0174): L<<682.0,200.0>--<684.0,221.0>> -> L<<684.0,221.0>--<759.0,636.0>> * 17 more. Use -F or --full-lists to disable shortening of long lists. [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments? (com.google.fonts/check/outline_jaggy_segments)
* ⚠ **WARN** The following glyphs have jaggy segments: * W (U+0057): L<<491.0,355.0>--<488.0,377.0>>/L<<488.0,377.0>--<486.0,355.0>> = 12.959594926160142 * Wacute (U+1E82): L<<491.0,355.0>--<488.0,377.0>>/L<<488.0,377.0>--<486.0,355.0>> = 12.959594926160142 * Wcircumflex (U+0174): L<<491.0,355.0>--<488.0,377.0>>/L<<488.0,377.0>--<486.0,355.0>> = 12.959594926160142 * Wdieresis (U+1E84): L<<491.0,355.0>--<488.0,377.0>>/L<<488.0,377.0>--<486.0,355.0>> = 12.959594926160142 * Wgrave (U+1E80): L<<491.0,355.0>--<488.0,377.0>>/L<<488.0,377.0>--<486.0,355.0>> = 12.959594926160142 [code: found-jaggy-segments]
INFO: Show hinting filesize impact. (com.google.fonts/check/hinting_impact)
* ℹ **INFO** Hinting filesize impact: | | BraahOne-Regular.ttf | |:------------- | ---------------:| | Dehinted Size | 107.5kb | | Hinted Size | 171.4kb | | Increase | 64.0kb | | Change | 59.5 % | [code: size-impact]
INFO: Font has old ttfautohint applied? (com.google.fonts/check/old_ttfautohint)
* ℹ **INFO** Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.000', 'Version 1.000'] [code: version-not-detected]
INFO: EPAR table present in font? (com.google.fonts/check/epar)
* ℹ **INFO** EPAR table not present in font. To learn more see https://github.com/googlefonts/fontbakery/issues/818 [code: lacks-EPAR]
INFO: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? (com.google.fonts/check/gasp)
* ℹ **INFO** These are the ppm ranges declared on the gasp table: PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType® [code: ranges]
INFO: Check for font-v versioning. (com.google.fonts/check/fontv)
* ℹ **INFO** Version string is: "Version 1.000" The version string must ideally include a git commit hash and either a "dev" or a "release" suffix such as in the example below: "Version 1.3; git-0d08353-release" [code: bad-format]
INFO: Font contains all required tables? (com.google.fonts/check/required_tables)
* ℹ **INFO** This font contains the following optional tables: - cvt - fpgm - loca - prep - GPOS - GSUB - gasp [code: optional-tables]
INFO: List all superfamily filepaths (com.google.fonts/check/superfamily/list)
* ℹ **INFO** . [code: family-path]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 3 11 118 8 102 0
0% 1% 5% 49% 3% 42% 0%

Note: The following loglevels were omitted in this report:

artandtype commented 1 year ago

Hi, I tried doing the suggested steps. But somehow not able to solve these fails. Would you like me to convert .vfb to Glyphs (software) format and share that with you?

emmamarichal commented 1 year ago

Yes sure, no problem :)

artandtype commented 1 year ago

Kindly Find the .glyphs format in the below link https://drive.google.com/file/d/1OSjX2DzncgCGorez7KnhNRNvrVz7Omsn/view?usp=share_link

emmamarichal commented 1 year ago

Thank you @artandtype! I'm doing a global update with accents, because there were not composed automatically. I'll send you a PR with the modification so you can validate. Thanks!