justvanrossum / fontgoggles Goto Github PK
View Code? Open in Web Editor NEWFontGoggles: Visual OTL Preview and QA
License: Apache License 2.0
FontGoggles: Visual OTL Preview and QA
License: Apache License 2.0
Milestones from project plan:
We currently don't maintain the edited status of the document, and you can close a project without getting a save prompt.
User documentation should be generated from markdown and should be hosted on GitHub Pages, or github.io or ReadTheDocs or something.
woff2 gives a freetype error, woff outputs only .notdef while shaping (hb-shape works just fine).
It appears as if uharfbuzz doesn't support woff/woff2.
You currently can only drop files onto the app icon.
Type design should not be a Mac-only business.
Specific things left to do:
setup.py
, and App/setup.py
I love this tool so far, thank you for making this!
Currently it's handy to compare multiple styles, which I can do if I drag in generated static fonts for each style. As a user I'd like the option to see all named instances from a variable font (VF.ttf or .designspace) so I can compare characters or features across styles, particularly handy with things like feature variations.
Thanks for your consideration 🙏
I want to get this implemented soon, before 1.0.0.
feature/variations/options UI respond to font selection, maybe.
Perhaps the "settings are for all fonts simultaneously" is a feature.
One can enable/disable features, but if there are alternate substitution lookups then there is a need to list all alternates (1, 2, 2, etc.) and be able to select them.
In this font, salt
feature uses alternate substitutions: AbdAlQadir.otf.zip
The way I am reading the grey/green/red status of the feature labels "grey" communicates using "whatever the renderer does by default" — however, it would be useful to actually know what features are on.
'rlig' as well as the GPOS features are on by default, but the current UI does not communicate this. I think there should be a difference between the color indicators of your choice and communicating what is active in the renderer.
Nice tool!
I'm interested in the possibility of using FontGoggles for visual review of glyph design and spacing consistency across a family. For that, I find it helpful to have the glyphs directly proximate to each other, so wonder if you can add a View option to hide font labels, allowing the lines of preview text to be moved closer together and without visual noise from the labels.
For the same purpose, I like to be able to look at glyphs in a grid, so they're aligned veritcally and horizontally, so wonder if a columns view could be implemented? In column view, it would also be nice to have an option to display sidebearings, to be enable visual checking of spacing consistency.
It struck me today that, since Fontgoggles provides a handy way to compare a variety of different font files, that it would also be useful to be able to print the main view screen if quickly making a proofing doc to review.
This isn’t to say that I couldn’t load up all the files in inDesign and print from there, but figure if I’ve already got what I want in fontgoggles, that’d be ideal!
For kerning and mark features.
To achieve this we need to
Case when Char+Unicode column is not aligned with the glyphs column (see U+0FB1 under unicode)
text: དཀྱོིར་
font: https://github.com/googlefonts/noto-fonts/tree/master/phaseIII_only/unhinted/variable-ttf/NotoSerifTibetan-VF.ttf
Note that we also seem to have a font/rendering issue but it's NOT FG (it's source or fontmake or harfbuzz -- trying to understand it).
Also, when clicking on a font that caused warnings or errors, make sure the compile output pane is visible (uncollapsed).
Visual clue: thinking of a pattern in the background.
To figure out: distinquish between warning and error.
Should each test font come with its original licence?
Or would it be better to include full repos as submodules? (Some IBM Plex fonts are useful, but the entire repo may be too much to pull in.)
I’m trying a font with a non-standard variation axis, and the variation tab is empty. Not sure if there is something missing in the font or non-standard axes are not supported.
See also rougier/freetype-py#119
In horizontal layout, the filename label and the progress spinner should stay where they are when scrolling horizontally. Opposite for vertical. This allows the filename to be readable even when zooming in or scrolling a long string.
We don't need a full traceback for those exceptions
ufo2ft
for feature building, see #5I noticed FG applies automatic sorting to fonts when files are dropped on the app icon.
The current sorting appears to look at OS/2 usWeight value first and then whether the font is roman or italic?
It does not apply any sorting when files are dropped into a window. (I assume this is intentional.)
Please consider adding an option for sorting the list of fonts at any moment.
It would be really nice if a user can define their own sorting filter so I can sort first by usWidth value, then usWeight, and then roman/italic, for example.
This is easy to review CJK Variable Fonts. However one thing I have a complaint, latin character on vertical orientation become uplight posture. It should be sideways if it uses with CJK text in default.
Steps:
My designspace uses supports layers with components.
The components show up fine using the generated var font in FG, but if I use the designspace in FG the characters which contain nested components don't change when I move the sliders, only the non-componented glyphs change. Thanks!
The Variations menu needs an option to show named instances (Light, Regular, Bold, etc).
مَتْنوَنِوِشْتِه
This string contains U+200C (ZERO WIDTH NON-JOINER), but the bidi algorithm strips it, causing wrong rendering:
Disabling the bidi algorithm fixes the rendering:
@typoman: is my conclusion correct in that the second screenshot is correct, and the first isn't?
Ideally this should not be done with a global "reporter"-style window, but a proper UI, where errors are collect on a per-font basis.
It would be great to be able to have a view where it shows all characters available within a font. For error checking instances and interpolation across multiple axes this can take a while when typing characters individually.
Having a grid view (similar to Glyphs/Robofont) would give a quick overview of all the characters.
py2app doesn't work with non-framework builds. Maybe we should just install Python from python.org after all, but that will increase the workflow run time.
There is this vertical list of output glyph sequence next to the input character sequence. I was wondering it would be handy if I could copy a srting of space seperated glyph names from this glyph sequence. Maybe selecting the list and hitting CMD+C would be enough?
With options I mean the Size, Baseline and Margin.
We also need a UI to show warnings and errors that occurred during loading/compiling.
A problem with ufo2ft is that when there's an error, it writes a temp file with the generated source, and the path of that temp file is communicated via logging warning. I will most likely post an issue or PR on the ufo2ft repo later.
Instead of a single text entry, the user should be able to load a text file, and step through it line by line.
Each line can be edited, but I'm not sure if/how we should handle saving such edits. Perhaps edits should simply be discarded, perhaps already upon step up/down.
[ text entry ... ] [↕] [ load text file... ]
Save/restore:
This is the traceback:
Traceback (most recent call last):
File "fontgoggles/mac/mainWindow.pyc", line 488, in _loadFont
File "fontgoggles/project.pyc", line 139, in load
File "fontgoggles/project.pyc", line 172, in loadFont
File "fontgoggles/font/otfFont.pyc", line 54, in load
File "fontTools/ttLib/ttFont.pyc", line 139, in __init__
File "fontTools/ttLib/sfnt.pyc", line 75, in __init__
fontTools.ttLib.TTLibError: Not a TrueType or OpenType font (not enough data)
Doesn't happen every single time, maybe every 3rd time or so? But when it does happen, it's always the last instance listed in the .designspace that I used in fontmake. If I change the order of instances in the designspace so that a different instance is listed last, the new last instance will be the one that has the problem in FG. Hopefully that helps to track down the issue.
Not urgent at all but thought it's worth reporting in case this affects others as well. I can email you a screen recording of this happening if it would be helpful. Thanks!
Python 3.7 only has Unicode 11.0 data while 3.8 has 12.1.0 data. Unicode 13 is also around the corner right now and it would be useful to include the latest instead of relying on Python versions.
I just spent some time wondering why my Wancho (Unicode 12.0) glyphs weren't being displayed at all and it's because there is no Unicode information and bidi determination fails with
Traceback for <Task finished coro=<FGMainWindowController.textEntryChangedCallback() done, defined at fontgoggles/mac/mainWindow.pyc:593> exception=AssertionError(' not allowed here')> (most recent call last):
File "fontgoggles/mac/mainWindow.pyc", line 599, in textEntryChangedCallback
File "fontgoggles/misc/textInfo.pyc", line 10, in __init__
File "fontgoggles/misc/textInfo.pyc", line 26, in text
File "fontgoggles/misc/bidi.pyc", line 13, in applyBiDi
File "fontgoggles/misc/bidi.pyc", line 57, in getBiDiInfo
File "bidi/algorithm.pyc", line 466, in resolve_implicit_levels
AssertionError: not allowed here
My quick fix is to default the type and orig to L in getBiDiInfo
and then the glyphs are displayed.
for index, (ch, chInfo) in enumerate(zip(text, storage["chars"])):
assert ch == chInfo["ch"]
chInfo["index"] = index
if not chInfo["orig"] and not chInfo["type"]:
chInfo["orig"] = 'L'
chInfo["type"] = 'L'
Sometimes one might need to control features for only one or more characters instead of affecting all the text.
This is probably a bigger request than I realize, especially because so many font formats are accepted here. So, feel free to disregard/close this if you don't think it's within the intended purview of the tool. But...
Many times a day, I want to pop open a font and see its name table. Of course, I can use ttx -t name <font>
and open the result in a code editor, but it would be pretty amazing to be able to just drag-and-drop a font or two onto the FontGoggles icon and see the data instantly.
There are other tools for this, but FontTableViewer refuses to open variable fonts, and OTMaster is just less nice than FontGoggles.
Still, it might be that table viewing is well outside the spec for this app, and that totally makes sense. Just wanted to suggest that someday in the future, it may be a nice layer of functionality to add.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.