-
Notifications
You must be signed in to change notification settings - Fork 1
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
Make sparse sources explicit #11
Comments
I agree that this is fiddly currently. Can you please list the gotchas that you stumbled over? Since sparsity is basically shoehorning UFOs into something they weren't made for, I'm not very clear on how to improve things... |
Thanks, @madig! First off, I’m very glad everything here exists, and I’m just hoping that it can be better for new & experienced users in the future.
Serious question: were UFOs really made for interpolation at all? My understanding of it is that UFOs are mostly made to store single font sources and related data in a flexible way, and the designspace is what binds them together in a way that allows interpolation.
Sure! Specific friction points I’ve encountered include:
I'm not sure how much of this can be handled in designspaces, but I think/hope that being able to specify sparse sources explicitly would help in getting tools to expect it and support it more directly. |
I don't think so, which is why you have these impedance mismatches :)
Yes, use the |
I think we should handle this in V5 in the following way:
I think MutatorMath was able to do that kind of stuff already so we should re-use the existing tags whenever possible, and change the spec to say that it should work also in varLib |
At least as far as the designspace spec goes, this doesn’t really seem very explicit. The entire definition I can find is:
The fact that FontMake skips features where Beyond that, using a specified layer feels more like a workaround than a user-centric solution. Ideally, I would imagine that a goal of the designspace v5 should be to make it simpler for new designers to add design nuance to interpolation. I’m sure that the layer approach works really well for some projects, but it doesn’t strike me as the best possible way forward for future projects. Of course, I could be wrong, but I’ve written about this view in more detail in this comment. My perspective boils down to:
@belluzj’s suggestion seems to be a pretty good one! I am slightly uncertain about the |
I agree with all the above that @arrowtype has outlined, I've run into the exact problems. What I found most frustrating while working with sparse masters on top of the above is that there wasn't any simple way in a UI level to work with them contextually. In Glyphs App I can preview an line at a specific instance and work on a sparse master glyph without having to generate an entire instance – but it's still limited. In Robofont I essentially had to generate an entire UFO and correct the relevant sparse master glyphs, then delete the rest and then shoehorn them back into a master as layers. I haven't used Skateboard so I'm not sure how it works there. For both workflows, it's really hard trying to keep track of where I had sparse masters like @arrowtype mentioned too. Another issue I ran into was depending on the position of a sparse master, I often needed to add extra masters to make sure the spaces created by the sparse master were orthogonal – i.e. adding explicit sparse masters at the edge of a designspace even if they weren't necessarily changing the design – otherwise the rest of the interpolation was warped. This meant I had to keep track of which sparse masters were actual design layers and which ones where only necessary for making the designspace work. |
Often, I will a small number of sources to cover a wide range of style, e.g. weight. This works well for 95% of the glyphs in the designspace, but some need touch-ups somewhere in the middle of their interpolation. A good way to do this is via "sparse" sources which just contain a few glyphs, but not all glyphs, and (unless otherwise intended) no kerning or feature data. However, this process is a bit cumbersome and not very standardized, so it would be great to make more explicit in future versions of the DesignSpace spec.
The text was updated successfully, but these errors were encountered: