Will using scaling of a component inside a master work for a variable font

At one point I read that using the scale parameter doesn’t work for a variable font. So, I was wondering if scaling a component in a master will work for a variable font. Let’s say there is glyph made up of components, and they are scaled, so that the scale is shown in the info panel. The way this seems to work is that all the calculations between the masters is done and then the last thing to be done is that the scale is applied to everything. An example is that there is a thin master with a thin component, a second master with weight added inside the component to the thin component and a third master that scales the width of the thin component. The way this is displayed using instances, is that the instance first calculates the values for the chosen weight applied to the thin master, and then the width scale is applied to the result of both the extents of the thin master plus the weight. If the scale were only to be applied to the thin component, then the weight of the second master would not also be scaled. Will scaling like this work for a variable font.

Component can’t change scaling. Only the position change.

Thanks! Also, can slant angle function applied to component be used with variable font?

As I said: only the position can be variable.

OK, got it. FYI in the “Variable Font Preview” plugin, using scaling and slanting on components works just fine, just like in the standard instance preview.

It might be that the components get decomposed. Then the transformations will “work” but not as components. That can make a difference, mostly with rotations.

I tested this, and a setup with 5 axes and 6 masters, and with scaling and slant applied to components for width and italic, works fine in “Variable Font Preview”. The setup does not work in “Variable Font Preview” after I decompose the components. I assume this is because within glyphs scaling and slant applied to components is supported and I understand the components will be decomposed upon variable font export and so won’t work properly after export.

So, for variable fonts (and also for intermediate brace layers) testing indicates that transformations can be used on components, like scaling and slant, as long as the set up will work after all components are decomposed. Without decomposition some setups with component transformations work, and work with as few as the number or axes plus 1 (for 5 axes, 6 masters sometimes works well). But to work after decomposition of all components and for intermediate brace layers, testing indicates that the number of masters needs to equal 2^n, where n = the number of masters. This is the number of vertices of the hyper-cube, where each vertex represents the combinations and permutations of the minimum and maximum value of each axis. So, for 2 axes this would be 4 masters, which are at the 4 corners a square. For 3 axes this would be 8 masters, which are at the 8 vertices of a cube. For 5 axes this would be 32 masters, which are at the 32 vertices of the 5 dimensional hyper-cube. So, the short answer is to use as few axes as possible for variable fonts and intermediate brace layers to work, or the number of masters needed multiplies quickly. Conversely, if you use the number of masters that are at the vertices of the hyper-cube of the maximum and minimum values of the axes, everything seems to work well, even when using component transformations. I think this matches some of the advice in the tutorials. Thanks.