googlefonts / googlefonts/glyphsLib

masters or intermediate layers can also be marked as "alternate"

Open
#983 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
201
Forks
56
Avg merge
17m
Merged PRs (30d)
1

Description

I just found out about this, which is a bit surprising to me at least:

https://handbook.glyphsapp.com/switching-shapes

> A master layer can also be designated as an Alternate layer. For that, Control-click or right-click a master layer in the Layers palette and choose Alternate. Configure the axis range of the master layer like a normal Alternate layer.
> Then, add a new layer to the master, mark it as an Alternate layer, and leave both the min and max fields empty. This renames the new layer to []. Place the alternate outline on the master layer and the normal outline on the [] layer. Whether the master or a backup layer is converted to an Alternate layer is not relevant to the exported fonts; it is purely an organizational choice within Glyphs.

glyphsLib doesn't currently support this situation because it assumes master layers are one thing, alternate or bracket layers another (the latter are handled separately and at a later stage in the builder).

I just file this issue for reference, but I don't plan to work on this. The code handling bracket layers is already complicated enough, and don't see much use in this. If Glyphs.app doesn't care (see "it is purely an organizational choice") then if one does care about building with glyphsLib/fontmake then they can reorganise the layers as glyphsLib expects, i.e. by avoiding to designate master layers as alternate/bracket.

Contributor guide

Open the contributing guide

Research direction

Start by reading glyphsLib's existing bracket-layer handling in the builder and compare it with the Glyphs.app switching-shapes behavior linked in the issue. Determine how master layers marked as alternate should be represented and built; done would mean supporting that organization without requiring users to reorganize layers.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.