Skip to content

Add Nata Sans font family #9494

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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Add Nata Sans font family #9494

wants to merge 3 commits into from

Conversation

dnlzqn
Copy link

@dnlzqn dnlzqn commented May 22, 2025

This is a clean resubmission of Nata Sans, following feedback from the Google Fonts team.

  • The previous pull request (Add Nata Sans font family by Daniel Uzquiano #9477) was closed after a force-push broke the commit history.
  • This new submission includes:
    • Correct file structure (METADATA.pb, OFL.txt, and the font file at the top level)
    • article/ folder with ARTICLE_en_us.html and Nata.svg
    • A fully cleaned commit history, based on the latest repository standards

Thank you for your time and guidance — looking forward to your review.

@dnlzqn
Copy link
Author

dnlzqn commented May 22, 2025

Hi @m4rc1e @emmamarichal, just a quick note to let you know I opened this new PR after accidentally closing the previous one. Thanks again for your help and feedback!

@davelab6
Copy link
Member

@dnlzqn thanks for posting this! Usually we prefer an issue than a PR, so that we can discuss your project there and get consensus to add it and what will be required, and then later once our requirements are met, then we prepare a PR ourselves that is sure to pass through our onboarding validation processes quickly. But its great you are trying to make a PR directly :) I did a review here in gh and spotted a few things in the text shown, I didn't look inside your TTF, but I'm sure @emmamarichal and @m4rc1e will do an excellent review soon :)

@emmamarichal
Copy link
Collaborator

Thank you @davelab6 :) I'll give you a review regarding outlines as soon as possible, thanks again for your submission!

@dnlzqn
Copy link
Author

dnlzqn commented May 23, 2025

Thanks for the feedback and for the clarification about the usual process, @davelab6 — totally noted for future contributions!

I've now:
– Updated the copyright line in METADATA.pb
– Clarified wording in ARTICLE_en_us.html ("Latin including Vietnamese and Cyrillic")
– Updated the SVG (Nata.svg) accordingly

Let me know if there's anything else to address. Happy to adjust anything further to align with GF standards.

@dnlzqn dnlzqn requested a review from davelab6 May 23, 2025 16:49
@emmamarichal
Copy link
Collaborator

Hi @dnlzqn!

First of all, thanks again for that submission, the font covers a lot of langages, that's really appreciated.

Here you can find a first review:

Fontspector Fails and Warns you can easily fix

🔥 FAIL Check tabular widths don't have kerning. (tabular_kerning)
-> remove kerning on your tabular figures

⚠️ WARN Are there caret positions declared for every ligature? (ligature_carets)
-> add anchors to ligatures (cmd + U)

⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
-> Remove or mark as non-export all the .001 glyphs

⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
-> add U+2028 and U+2029

Outlines / alignement / Design issues

Note: for each point, check it in each masters.

  • 'W' looks too wide
  • 'Q' tail is maybe a bit short
  • 'ogonek' should be drawn a bit differently, you can check this: https://www.twardoch.com/download/polishhowto/ogonek.html
  • Glyphs with bar or slash have to be corrected (see screenshots)
  • 'ae': 'e' design should be the same as the actual 'e'
  • descenders should have the same size in all masters (example with the 'p')
Screenshot 2025-06-19 at 11 47 44 Screenshot 2025-06-19 at 11 47 48 Screenshot 2025-06-19 at 11 48 17 Screenshot 2025-06-19 at 11 49 10 Screenshot 2025-06-19 at 11 49 24 Screenshot 2025-06-19 at 11 49 39 Screenshot 2025-06-19 at 11 49 52 Screenshot 2025-06-19 at 11 50 08 Screenshot 2025-06-19 at 11 50 17 Screenshot 2025-06-19 at 11 50 55 Screenshot 2025-06-19 at 11 51 00 Screenshot 2025-06-19 at 11 51 13 Screenshot 2025-06-19 at 11 51 33 Screenshot 2025-06-19 at 11 52 08 Screenshot 2025-06-19 at 11 53 24 Screenshot 2025-06-19 at 11 54 52 Screenshot 2025-06-19 at 11 56 34 Screenshot 2025-06-19 at 11 57 19 Screenshot 2025-06-19 at 11 58 50 Screenshot 2025-06-19 at 12 00 21 Screenshot 2025-06-19 at 12 04 19 Screenshot 2025-06-19 at 12 05 47

Other

  • In OFL.txt, change https://scripts.sil.org/OFL to https://openfontlicense.org/

FontSpector report

fontspector version: 1.0.2

Check results

[4] ofl/natasans
🔥 FAIL Check font has a license. (googlefonts/family/has_license)
  • 🔥 FAIL No license file was found. Please add an OFL.txt or a LICENSE.txt file. [code: no-license]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/natasans/NataSans[wght].ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, cherokee, coptic, tifinagh
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: hebrew, math, tai-le, canadian-aboriginal, duployan, old-permic, syriac, todhri, coptic, malayalam, tifinagh
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
    ... and 65 others

Or you can add the above codepoints to one of the subsets supported by the font: cyrillic-ext, cyrillic, latin-ext, latin, vietnamese [code: unreachable-subsetting]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file (googlefonts/description/has_article)
  • ℹ️ INFO This font doesn't have an ARTICLE.en_us.html file. [code: missing-article]
ℹ️ INFO Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO None of the fonts lack a STAT table.

    And these are the most common STAT axis orderings:
    wght: 1 [code: summary]

[17] ofl/natasans/NataSans[wght].ttf
🔥 FAIL Check tabular widths don't have kerning. (tabular_kerning)
  • 🔥 FAIL Kerning between zero.tnum and nine.tnum [code: has-tabular-kerning]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron (alt_caron)
  • ⚠️ WARN Lcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]

  • ⚠️ WARN dcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]

  • ⚠️ WARN lcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]

  • ⚠️ WARN tcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. (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:

  • .notdef (unencoded): found 8, expected one of: {5, 0, 3, 4, 2}
  • uni0181 (U+0181): found 4, expected one of: {3}
  • f_f_t.liga (unencoded): found 3, expected one of: {5, 4, 2}
  • f_t.liga (unencoded): found 2, expected one of: {3, 1}
  • fl.ss01 (unencoded): found 1, expected one of: {3, 2}
  • uni0424 (U+0424): found 4, expected one of: {3}
  • uni0444 (U+0444): found 4, expected one of: {3}
  • uni04CA (U+04CA): found 2, expected one of: {4, 1}
  • colonmonetary (U+20A1): found 2, expected one of: {3, 1, 5}
    ... and 24 others [code: contour-count]
⚠️ WARN Are there caret positions declared for every ligature? (ligature_carets)
  • ⚠️ WARN This font lacks caret positioning values for these ligature glyphs:
      • Iacute_j.loclNLD

[code: incomplete-caret-pos-data]

⚠️ WARN Ensure variable fonts include an avar table. (mandatory_avar_table)
  • ⚠️ WARN The font does not include an avar table. [code: missing-avar]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • icydotless.001
  • icyacute.001
  • icybreve.001
  • icycaron.001
  • icycircumflex.001
  • icydblgrave.001
  • icydieresis.001
  • icydotbelow.001
  • icygrave.001
    ... and 10 others [code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN The following glyph names are too long: "icydotless_commaaccentcomb_ring.001, icydotless_below_hungarumlautcomb.001, icydotless_commaaccentcomb_dotaccent.001" [code: legacy-long-names]
⚠️ WARN Shapes languages in all GF glyphsets. (googlefonts/glyphsets/shape_languages)
  • ⚠️ WARN Warning language shaping:
Message Languages
Auxiliary orthography codepoints: * be_Cyrl (Belarusian)
Shaper didn't attach acutecomb to uni0430 when shaping the text 'а́' * be_Cyrl (Belarusian)
Shaper didn't attach acutecomb to uni0435 when shaping the text 'е́'
Shaper didn't attach acutecomb to uni0451 when shaping the text 'ё́'
Shaper didn't attach acutecomb to uni0456 when shaping the text 'і́'
Shaper didn't attach acutecomb to uni043E when shaping the text 'о́'
Shaper didn't attach acutecomb to uni0443 when shaping the text 'у́'
Shaper didn't attach acutecomb to uni044B when shaping the text 'ы́'
Shaper didn't attach acutecomb to uni044D when shaping the text 'э́'
Shaper didn't attach acutecomb to uni044E when shaping the text 'ю́'
Shaper didn't attach acutecomb to uni044F when shaping the text 'я́'
Auxiliary orthography codepoints: * ru_Cyrl (Russian)
Shaper didn't attach acutecomb to uni0430 when shaping the text 'а́' * ru_Cyrl (Russian)
Shaper didn't attach acutecomb to uni0435 when shaping the text 'е́'
Shaper didn't attach acutecomb to uni0438 when shaping the text 'и́'
Shaper didn't attach acutecomb to uni043E when shaping the text 'о́'
Shaper didn't attach acutecomb to uni0443 when shaping the text 'у́'
Shaper didn't attach acutecomb to uni044B when shaping the text 'ы́'
Shaper didn't attach acutecomb to uni044D when shaping the text 'э́'
Shaper didn't attach acutecomb to uni044E when shaping the text 'ю́'
Shaper didn't attach acutecomb to uni044F when shaping the text 'я́'
Auxiliary orthography codepoints: * uk_Cyrl (Ukrainian)
Shaper didn't attach acutecomb to uni0430 when shaping the text 'а́' * uk_Cyrl (Ukrainian)
Shaper didn't attach acutecomb to uni0435 when shaping the text 'е́'
Shaper didn't attach acutecomb to uni0454 when shaping the text 'є́'
Shaper didn't attach acutecomb to uni0438 when shaping the text 'и́'
Shaper didn't attach acutecomb to uni0456 when shaping the text 'і́'
Shaper didn't attach acutecomb to uni0457 when shaping the text 'ї́'
Shaper didn't attach acutecomb to uni043E when shaping the text 'о́'
Shaper didn't attach acutecomb to uni0443 when shaping the text 'у́'
Shaper didn't attach acutecomb to uni044E when shaping the text 'ю́'
Shaper didn't attach acutecomb to uni044F when shaping the text 'я́'
Auxiliary orthography codepoints: * bg_Cyrl (Bulgarian)
Shaper didn't attach gravecomb to uni0430 when shaping the text 'а̀' * bg_Cyrl (Bulgarian)
Shaper didn't attach gravecomb to uni043E when shaping the text 'о̀'
Shaper didn't attach gravecomb to uni0443 when shaping the text 'у̀'
Shaper didn't attach gravecomb to uni044A when shaping the text 'ъ̀'
Shaper didn't attach gravecomb to uni044E when shaping the text 'ю̀'
Shaper didn't attach gravecomb to uni044F when shaping the text 'я̀'
Auxiliary orthography codepoints: * sr_Cyrl (Serbian)
Shaper didn't attach uni0302 to uni0430 when shaping the text 'а̂' * sr_Cyrl (Serbian)
Shaper didn't attach uni0302 to uni0435 when shaping the text 'е̂'
Shaper didn't attach uni0302 to uni0438 when shaping the text 'и̂'
Shaper didn't attach uni0302 to uni043E when shaping the text 'о̂'
Shaper didn't attach uni0302 to uni0443 when shaping the text 'у̂'
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN The following separator glyphs are missing:
  • U+2028
  • U+2029 [code: missing-separator-glyphs]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (soft_dotted)
  • ⚠️ WARN The dot of soft dotted characters used in orthographies must disappear in the following strings: * j̑
  • ɨ̏The dot of soft dotted characters should disappear in other cases, for example: * į̰̑
  • į̰̏
  • į̦̑
  • į̦̏
  • į̨̑
  • į̨̏
  • į̛̑
  • į̛̏
  • į̧̑
    ... and 193 others [code: soft-dotted]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value 'NONE' is not yet recognized.
    If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
ℹ️ INFO Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
NataSans[wght].ttf
Dehinted Size 450084
Hinted Size 450108
Increase 24
Change 0.0 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? (googlefonts/gasp)
  • ℹ️ INFO These are the ppm ranges declared on the gasp table:

| PPM <= 65535 | - Use grid-fitting |
| | - Use grayscale rendering |
| | - Use gridfitting with ClearType symmetric smoothing |

- Use smoothing along multiple axes with ClearType®
[code: ranges]
ℹ️ INFO Font has old ttfautohint applied? (googlefonts/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.001 [code: version-not-detected]

Summary

✅ PASS ⏩ SKIP 🔥 FAIL ⚠️ WARN ℹ️ INFO
111 47 2 15 7
62% 26% 1% 8% 4%

…lar figures, added caret positions, fixed separator glyphs, updated OFL URL, cleaned .001 glyphs, adjusted outlines, and updated METADATA.pb subsets
@dnlzqn
Copy link
Author

dnlzqn commented Jun 21, 2025

Hi @emmamarichal,

Thanks again for your detailed review — I’ve now implemented all the changes you requested:

  • Removed kerning on tabular figures
  • Added caret positions to all ligatures
  • Added separator glyphs U+2028 and U+2029
  • Removed or renamed .001 glyphs, cleaned up names
  • Fixed OFL.txt URL and restored standard license body
  • Corrected outlines across masters (W width, Q tail, ogonek, bars, ae, descenders…)
  • Updated METADATA.pb subsets and structure (including menu, sorted alphabetically)

Let me know if anything else needs adjustment. Thanks again for your support!

Best,
Daniel

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

Successfully merging this pull request may close these issues.

3 participants