I found this out the hard way, but in a variable font exported as TTF, deep nesting of components breaks the font in Adobe apps. The glyphs show up empty with zero width (this is the case at least in InDesign v20.2). The font works fine everywhere else.
So if you want your font to work with Adobe apps, you may only use a component in the final exported glyph, and not in any intermediary components. In other words only single-level nesting of components will make the TTF variable font work universally across apps.
I tried not exporting as TTF, but I just get a “Core - An unknown error occurred”
Is this correct or am I doing something horribly wrong? If so would be also immensely helpful to mention it in the Creating a Variable Font guide to help designers plan properly.
Is this issue happen only when the nested component is a base component that sets the width of the bounding box? Or is this issue also happen for any other nested component, like a diacritical mark?
For example, if Ldot have single level L component, but dot (periodcentered.case) is a nested component from periodcentered. Will this case be an issue?
In my experience components within components simply do not work in a variable TTF (with Adobe apps). Export your font as a variable TTF and open it up in Adobe to see what really happens to that glyph.
I’ve solved my particular case by installing a plug-in called “Unnest Components” and added it as a Filter in the “Variable Font Settings” under the Exports tab.
However, Intermediate brace {} layers inside nesting components do not work with this method, so you might need to create entire Masters as an additional workaround for those intermediate layers, ensure that everything interpolated as designed, then export.