Hi folks,
I've been working on a tool that would make it easy for webdevelopers to see which layout features are in the font, to which characters they apply, and what CSS you'd need to enable them on the web. The generated CSS cascades and can be combined by applying a class per layout feature, something that's usually hard to do due to font-feature-settings not cascading and the lack of support for font-variant-*.
You can try the tool here:
https://wakamaifondue.com/Note that fonts aren't being uploaded to a server—everything is processed locally in your browser.
If you see things that can be improved, I'd appreciate the feedback!
Comments
good idea but difficult to implement (I think...)
As you wish, my first fedback:
If You show glyphs from feature, you need to turn off all other features (as example font Kleymissky)
Your site show glyphs "Z" as "Z.init" ,"z" as "z.fina" and not from "cv07" table.
Most probably "calt" feature should be OFF. (font Kleymissky have init and final forms as contextual alternates implemented)
Noting the huge display of contextual alternates, I wondered if a similar display of kern pairs might also be possible?
@Nick Shinn and @James Puckett, I'm now dumping everything combination that is in the lookup table for a feature (except kern, where I experimented by just showing a pangram to play around with). I could do the same for kern as I do for calt, but it would potentially add another huge blob of combinations to the page. I figured that would be the point, but I take it it's undesired? What would be a better way to display kern, calt or other potentially long strings?
@Mark Simonson I'm filing a bug with Safari. As the browser crashes completely it's hard to debug what caused it. But I'm working on it, and hope to push an update over the weekend!
Thanks everybody for checking it out, and the feedback!
I wonder why the characters overview displays all in one single row.
Unrelated: This almost looks like wrapping paper with a pattern
@Jens Kutilek Unfortunately there's no mapping to the name table for GSUB/GPOS stuff in Fontkit, the font library I'm using. I'd like to figure out how to that sometime though (or hope @devongovett will!)
@Andreas Stötzner Wow, that is vintage indeed! Regardless, Wakamai Fondue should've shown you a nice grid. It's fixed now!
I also tried SBL Hebrew, which is relatively simple in terms of GSUB, but very complex in its GPOS. The contextual GSUB lookups get displayed fairly well, with affected glyphs displayed with triggering contexts, but it looks a mess because GPOS is not applied correctly in the strings, so when the context trigger is a mark, it isn't shown in correct relationship to the substituted base.
@John Hudson Thanks for reporting. Gabriola contained a lookup type I hadn't implemented yet. It should work now. I also had to cap the number of substitutions that are shown on screen to 500, to avoid the browser from crashing. I'd like to know how to fix the GPOS problem you see in SBL Hebrew, but unfortunately I can't work on that before next week.
I had a few issues, though.
I tried with Amiri, all stylistic sets except ss03, ss04 and ss08 show no glyphs. calt and kern show only a tiny selection of what the font has.
With AmiriQuranColored.ttf (which has no Latin glyphs) a fallback font is used for Latin (in the Try me and kerning boxes), with no indication that these are not glyphs from the font. A preview of the color glyphs with way to turn it on/off like layout features would be nice.
With Aref Ruqaa, only ss05 and ss08 show glyphs (though turning ss08 off does not seem to have any effect).
With Reem Kufi, none of the character variant features show any glyphs.
I can only show glyphs when they modify the original character. If the glyph is an alternate for something that has already been altered by another layout feature, the current tooling simply doesn't allow me to trace it back to the original character. If it did, I could instruct the browser to apply all layout features that would cause that specific glyph to be shown. I hope to address this soon.
I'm still not sure what to do with calt and kern: some people seem to prefer to see every single lookup that I can extract from the tables, others hate the wall of text this can result in.