Authoring OpenType Layout
Write each kind of layout data in the environment that makes its relationships clear. Substitutions are naturally expressed as glyph rules. Kerning is usually easier to judge as spacing between visible forms. Mark attachment begins with named positions on the drawings.
Authoring Tools and Environments
FontLab offers feature-code editing, visual lookup editing, visual kerning, and anchor-based mark positioning. Microsoft VOLT provides an additional external workflow. Choose the environment according to the relationship you need to author and whether its values must vary across masters.
The Features panel is the main text-authoring environment for OpenType feature code. The Classes panel supplies reusable glyph sets, and the Output panel reports compiler diagnostics. See The Features Panel.
The Lookups panel edits supported features, lookups, and rules as a visual document and traces their execution in a debugger. An imported font can be inspected from its stored binary layout without first recompiling decompiled Features text. The visual document remains separate from the code in Features; explicit import and clipboard operations transfer work between them. The complete browsing, editing, and debugging workflow is in The Lookups Panel. Substitution examples are in Substitution Lookups, and referenced actions in Contextual Substitution.
Feature source is font-level. The same source text is shared across the masters; selecting another master does not give you an independent Features document for that master. Ordinary substitutions therefore describe relationships that generally hold throughout the family.
Conditional substitution is an important exception to uniform behavior. A variation condition can select different substitution behavior in a region of the designspace. The source can describe that exception without becoming a separate feature document per master.
Author positioning where it varies
Visual kerning uses the Glyph window's Kerning mode, the Kerning panel, and kerning classes. Its values belong to masters and can be interpolated; see Kerning Visually.
The mark-positioning environment uses named anchors on glyph layers, together with the Glyph window's mark-attachment preview. A name establishes correspondence, while the positions establish where the attachment occurs and can vary with the design. See Attaching Marks.
FEA can also express positioning. The limitation is not that positioning code is impossible, but that an ordinary font-level numeric value does not automatically acquire a different value in every master. Use visual master data, anchors, and supported variation-aware parameter mechanisms when positions must vary. For a single-master design, fixed hand-authored positioning can be appropriate.
Microsoft VOLT offers an external visual route for specialized layout work, with an explicit import/export handoff to FontLab. The Lookups panel can help inspect the resulting layout data. See Appendix — Microsoft VOLT Integration.
Across these environments, correct layout depends on the character-to-glyph path and the positioned result in the intended script and language context.
Feature Parsing and Compilation
Compilation turns authored layout information into binary data for a shaping engine. The last successful compilation in the Features or Lookups panel determines which document supplies ordinary font previews and export. Compile features builds the Features-panel code; Compile in the Lookups panel builds its visual document. A failed compilation retains the preceding successful tables.
The Lookups debugger uses a private build of its own document. Running it does not switch the source used by other previews or export. Importing and copying also leave that choice unchanged until you compile the document you intend to use. Compilation and transfer procedures are covered in The Features Panel.
FontLab also assembles applicable generated data, including visual kerning and anchor-based attachment, according to the build and export settings.
Every kind of rule must be authored with variation in mind: font-level rules and conditional substitutions must agree with the master data used for varying positions. Conditional-substitution tags compile to the GSUB features rvrn/rclt; see Generated and Conditional Substitution.
FEA comes from the Adobe feature-file/AFDKO workflow. FontLab's compilation pipeline builds the source; a shaping engine such as HarfBuzz applies the result. Compilation alone does not establish that a feature is enabled or its input sequence occurs in a text run.
Opening existing layout data
Decompilation reads binary layout back into editable representations, governed by Preferences > Open Fonts > OpenType font tables:
- Supported GSUB substitutions become feature text in the Features panel.
- Supported GPOS kerning becomes visual kerning data.
- Supported mark positioning supplies anchors and related
mark/mkmkfeature information.
Supported GDEF ligature caret positions become caret anchors, whose edited positions are written back to GDEF on export. They are separate from mark-attachment anchors and do not generate mark or mkmk rules.
A .fea import reads authored feature text; see The Features Panel. Opening a compiled font instead reconstructs source from its tables. The Lookups panel retains a binary baseline for its document, allowing unchanged imported layout to be tested even if the reconstructed FEA is incomplete. Compiling Features does not replace that Lookups document. Similar panel contents do not imply preservation of the same original authoring information.
Round-trip fidelity
Neither direction guarantees a lossless round trip. Decompiled text may lose comments, lookup names, or organization; some binary constructions cannot be fully represented. Recompilation can reorganize data even when behavior remains equivalent. Being able to inspect or debug the retained binary data does not establish that every construction can be edited and recompiled visually. Follow a reported editing limitation and preserve the original layout when it cannot be represented faithfully.
Anchor names are source-authoring information. Production mark-attachment tables store relationships and coordinates rather than editable named anchors. A native source remains necessary for reliable future editing.
Supported Apple AAT layout can be translated into OpenType authoring data, but the conversion is not exhaustive or reversible; AAT layout is not written back on export.
Compilation success does not establish equivalent text behavior. Features, language-specific forms, kerning, marks, and variation-dependent cases can all be affected. See The Export Process for the export workflow.