source-foundry / Hack

A typeface designed for source code
http://sourcefoundry.org/hack/
Other
16.41k stars 613 forks source link

Proposal: Web font builds #286

Closed chrissimpkins closed 6 years ago

chrissimpkins commented 7 years ago

woff is supported in all modern browsers. TTF, EOT, and SVG web fonts are no longer recommended.

Suggest that we build woff (+/- woff2) files only for web font releases.

chrissimpkins commented 7 years ago

@jublo missing from general punctuation glyphs that are necessary to complete the glyphs that are not spaces (U+2000...U+200A), not format characters (U+200B...U+200F), not "other" (U+2060...U+206F)

Only missing in subsets, present in complete sets
Missing in Italic and Bold Italic Only
chrissimpkins commented 7 years ago

@jublo

Missing in currency set:

Italic set only
All sets
chrissimpkins commented 7 years ago

@jublo see David's manual analysis in https://github.com/source-foundry/Hack/issues/286#issuecomment-327592158 above. He did not find some glyphs on manual inspection of the regular web font set that are showing up in your visual proofing images. Are we certain that we are displaying glyphs that are present in the web fonts (complete and subset) and not fallbacks in some cases?

burodepeper commented 7 years ago

@jublo @chrissimpkins I manually inspected via Chrome Dev Tools, and checked whether a certain glyph was rendered via the webfont, or from a fallback. What struck me, was that some of the missing glyphs were displayed by different fallback fonts that I had not selected as such. Jublo, how does your tool determine whether it's been displayed as Hack or not?

mynetx commented 7 years ago

What struck me, was that some of the missing glyphs were displayed by different fallback fonts that I had not selected as such. Jublo, how does your tool determine whether it's been displayed as Hack or not?

@burodepeper @chrissimpkins I can confirm this behaviour right now – U+2055 is rendered as Monaco transparently, but I have not indicated that. This is serious and I need to inspect it.

chrissimpkins commented 7 years ago

@jublo thanks for looking into it JM. Perhaps fallback and metrics are the same between the two so detected as present in test sets?

May be in a browser default fallback definition/setting rather than in CSS?

mynetx commented 7 years ago

@chrissimpkins I need to find out – but not today.

chrissimpkins commented 7 years ago

@jublo I will take a look through the web font subsets to confirm all actual glyphs that are included so that you have a baseline to work from with the bugfix (or new tool if you go that route)

mynetx commented 7 years ago

@chrissimpkins U+2055 is affected in any case.

chrissimpkins commented 7 years ago

@burodepeper @jublo

Here are the missing glyphs as defined in the Hack source (i.e. before subsetting):

ASCII: None , set is complete

Latin-1 : None , set is complete

Latin Ext A:

General Punctuation:

Currency:

Next step will be to evaluate the web font subsets to confirm that they contain all of the expected glyphs in these sets excluding those that are missing from the source (above list).

chrissimpkins commented 7 years ago

We are in good shape with the subset web fonts. I reviewed every set manually and here is where we are:

ASCII: all sets complete

Latin-1: bold italic required minor fix https://github.com/source-foundry/Hack/commit/3adbae7184ff61fb13f75fc5d2042b8d653ae126, now all sets complete

Latin Ext A: consistent with glyphs that are missing from the set in the source

General Punctuation: in addition to the glyphs that are not currently included in the Hack sets, the following were missing from the subsets:

None of these are critical glyphs and we can troubleshoot as part of the v3.x line of work. Likely will be an error in the naming within the subset definition files. Not something that IMO should hold up release at this stage.

Currency: consistent with glyphs that are missing from the set in the source

The additional glyph numbers (beyond expected for the defined sets) are due to inclusion of additional fractions, additional subscript, additional superscript glyphs that are likely pulled in from the features defined in the fonts. This is not problematic, rather this is desired behavior of the compilation tool.

Let me know if you have any concerns. My feeling is that we are good to go from the web font build aspect. Still need to address the CSS files (require revisions for the new release files that we are using) and the package.json file (to support CDN releases of the web fonts via npm >> jsDelivr). This should complete all outstanding v3.0 work for the web fonts (there will be some web font documentation updates which I am not considering as part of this work).

mynetx commented 7 years ago

@chrissimpkins Do you judge the glyphs missing from the main fonts to be a 3.0 blocker?

chrissimpkins commented 7 years ago

@jublo Don't believe that anything currently missing is critical. These are things that we should fix over time, but are not in high priority category for fixes. My suggestion would be to aim to add all missing glyphs from https://github.com/source-foundry/Hack/issues/286#issuecomment-332055383 and address the bug in the general punctuation set (already designed and present in source, not in subsets) from https://github.com/source-foundry/Hack/issues/286#issuecomment-332395527 as part of our v3.x work. It would be nice to have complete sets across all of these targeted sets (if this is what we are going to use for web font subset targets...).

Would be worth continuing the discussion about what we feel is important to support in the subsets. The sets (derived from what we include above + other sets) defined for Google Fonts in https://github.com/davelab6/pyfontaine/tree/master/fontaine/charsets/internals/google_glyphsets may be worth more conversation. Let's discuss and then begin to add these glyphs as part of upcoming work on the fonts.

chrissimpkins commented 6 years ago

@jublo is adding missing glyphs from the Latin Ext A set. Coming in as PR now

chrissimpkins commented 6 years ago

JM PR x 3 merged to dev branch. One outstanding glyph design to complete the Latin Ext A set is still under discussion.

mynetx commented 6 years ago

@chrissimpkins Are you sure that these are to be added? They’re spaces and 0-width chars?

U+200b...U+200f (missing in all sets)

This also applies to U+2028…U+202E.

mynetx commented 6 years ago

Would love to get insight on U+2038.

grafik
chrissimpkins commented 6 years ago

Are you sure that these are to be added? They’re spaces and 0-width chars? This also applies to U+2028…U+202E.

Agree we do not need to add zero width glyphs. I wasn't aware of this when I reviewed the code ranges. Thanks @jublo

chrissimpkins commented 6 years ago

Would love to get insight on U+2038.

@jublo By insight do you mean is it necessary to include it? Will need to look through these missing glyphs to see what they are. I examined Unicode code points to determine missing values when we reviewed this. Are you trying to complete the general punctuation set for v3.001?

mynetx commented 6 years ago

I would like to get an opinion for my pasted design. :)

chrissimpkins commented 6 years ago

lgtm

Reading up on this. It appears that the caret shape at this point (c/w the ASCII ^) is meant to align with the baseline as a proofreading insertion character. Agree?

chrissimpkins commented 6 years ago

vs. ^

U+2038 U+005E ^

chrissimpkins commented 6 years ago

Want to open a new issue report for this? We are discussing on a closed thread...