# `GSFont`

*Class*

The top-level model object of a Glyphs document.

## Declaration

```swift
class GSFont
```

```objc
@interface GSFont : NSObject
```

```python
class GSFont(NSObject)
```

## Overview

A font owns the glyphs, masters, instances, axes, kerning, and layout code, and metadata that make up a type project.

**Axes** describe the types of styles that the font has. **Masters** define the type metrics at specific axis locations. **Instances** pinpoint the styles that are exported to font files. Text characters are mapped to **glyphs**. **Layers** make up the visual component of a glyph. **Kerning** controls the positioning of consecutive glyphs. **Layout code** further controls glyph positioning and glyph substitution to produce the final text layout.

The font distinguishes local data from data imported from linked fonts. Local glyphs and masters belong to the font and are edited through its mutation APIs. Imported glyphs and masters supplement lookup and interpolation APIs but remain owned by their source fonts.

## Topics

### Creating a Font

- [`GSFont initWithURL:error:`](/Core/GlyphsCore/GSFont/initWithURL:error:) — Creates a font by reading a Glyphs file or package.
- [`GSFont initWithData:error:`](/Core/GlyphsCore/GSFont/initWithData:error:) — Creates a font from the contents of a Glyphs file.
- [`GSFont initWithDict:error:`](/Core/GlyphsCore/GSFont/initWithDict:error:) — Creates a font from a Glyphs property-list representation.
- [`GSFont initWithDict:filePath:error:`](/Core/GlyphsCore/GSFont/initWithDict:filePath:error:) — Creates a font from a Glyphs property-list representation with an associated file path.

### Document

- [`GSFont.parent`](/Core/GlyphsCore/GSFont/parent) — The document containing the font.
- [`GSFont fileURL`](/Core/GlyphsCore/GSFont/fileURL) — The location of the document containing the font.

### Font Information

- [`GSFont.fontName`](/Core/GlyphsCore/GSFont/fontName) — The default-language family name.
- [`GSFont nameUI`](/Core/GlyphsCore/GSFont/nameUI) — A family name suitable for displaying the font in the user interface.
- [`GSFont.unitsPerEm`](/Core/GlyphsCore/GSFont/unitsPerEm) — The number of font units per em.
- [`GSFont.versionMajor`](/Core/GlyphsCore/GSFont/versionMajor) — The major component of the font version.
- [`GSFont.versionMinor`](/Core/GlyphsCore/GSFont/versionMinor) — The minor component of the font version.
- [`GSFont.date`](/Core/GlyphsCore/GSFont/date) — The creation date recorded for the font.
- [`GSFont panose`](/Core/GlyphsCore/GSFont/panose) — The ten-number PANOSE classification, or `nil` when no classification is specified.
- [`GSFont.note`](/Core/GlyphsCore/GSFont/note) — A note stored with the font for use in the editor.

### Font Type

- [`GSFontType`](/Core/GlyphsCore/GSFontType) — The interpolation and export mode of a font.
- [`GSFont.fontType`](/Core/GlyphsCore/GSFont/fontType) — The interpolation and export mode used by the font.
- [`GSFont fontTypeKeyForType:`](/Core/GlyphsCore/GSFont/fontTypeKeyForType:) — Returns the project-file key for a font type.
- [`GSFont fontTypeForTypeKey:`](/Core/GlyphsCore/GSFont/fontTypeForTypeKey:) — Returns the font type represented by a project-file key.

### Glyphs

- [`GSFont.glyphs`](/Core/GlyphsCore/GSFont/glyphs) — The local glyphs defined by the font.
- [`GSFont.allGlyphs`](/Core/GlyphsCore/GSFont/allGlyphs) — The local and imported glyphs available to the font.
- [`GSFont.importedGlyphs`](/Core/GlyphsCore/GSFont/importedGlyphs) — The glyphs supplied by linked fonts.
- [`GSFont.count`](/Core/GlyphsCore/GSFont/count) — The number of local glyphs defined by the font.
- [`GSFont countOfGlyphs`](/Core/GlyphsCore/GSFont/countOfGlyphs) — The number of local glyphs defined by the font.
- [`GSFont glyphAtIndex:`](/Core/GlyphsCore/GSFont/glyphAtIndex:) — Returns the local glyph at an index in [`GSFont.glyphs`](/Core/GlyphsCore/GSFont/glyphs), or `nil` when the index is out of bounds.
- [`GSFont indexOfGlyph:`](/Core/GlyphsCore/GSFont/indexOfGlyph:) — Returns the index of a local glyph in [`GSFont.glyphs`](/Core/GlyphsCore/GSFont/glyphs), or `NSNotFound` when the glyph is not present.

### Accessing Glyphs

- [`GSFont glyphForName:`](/Core/GlyphsCore/GSFont/glyphForName:) — Returns the local or imported glyph with a name, or `nil` when no glyph matches.
- [`GSFont glyphForNameFast:`](/Core/GlyphsCore/GSFont/glyphForNameFast:) — Returns a glyph for a local lookup by name, or `nil` when no glyph matches.
- [`GSFont localGlyphForName:`](/Core/GlyphsCore/GSFont/localGlyphForName:) — Returns the local glyph with a name, or `nil` when no glyph matches.
- [`GSFont glyphForId:`](/Core/GlyphsCore/GSFont/glyphForId:) — Returns the local or imported glyph with an identifier, or `nil` when no glyph matches.
- [`GSFont hasGlyphWithName:`](/Core/GlyphsCore/GSFont/hasGlyphWithName:) — Returns whether the font defines a local glyph with a name.
- [`GSFont glyphsForNames:`](/Core/GlyphsCore/GSFont/glyphsForNames:) — Returns the local or imported glyphs matching a sequence of names.
- [`GSFont.glyphNames`](/Core/GlyphsCore/GSFont/glyphNames) — The names of the local glyphs in glyph order.
- [`GSFont.allTags`](/Core/GlyphsCore/GSFont/allTags) — The distinct tags used by local glyphs, sorted by name.
- [`GSFont completionsForName:forPartialWordRange:`](/Core/GlyphsCore/GSFont/completionsForName:forPartialWordRange:) — Returns glyph-name completions for the partial name around a range.

### Unicode & Characters

- [`GSFont glyphForUnicode:`](/Core/GlyphsCore/GSFont/glyphForUnicode:) — Returns the local or imported glyph associated with a Unicode code point, or `nil` when no glyph matches.
- [`GSFont glyphForUnicodeFast:`](/Core/GlyphsCore/GSFont/glyphForUnicodeFast:) — Returns the local or imported glyph associated with a Unicode code point, or `nil` when no glyph matches.
- [`GSFont glyphForUnicodes:`](/Core/GlyphsCore/GSFont/glyphForUnicodes:) — Returns the local or imported glyph associated with the first matching Unicode code point, or `nil` when none match.
- [`GSFont localGlyphForUnicodeFast:`](/Core/GlyphsCore/GSFont/localGlyphForUnicodeFast:) — Returns a glyph from this font’s character cache associated with a Unicode code point, or `nil` when no glyph matches.
- [`GSFont localGlyphForUnicodes:`](/Core/GlyphsCore/GSFont/localGlyphForUnicodes:) — Returns a glyph from this font’s character cache associated with the first matching Unicode code point, or `nil` when none match.
- [`GSFont glyphForCharacter:`](/Core/GlyphsCore/GSFont/glyphForCharacter:) — Returns the local or imported glyph represented by a Unicode scalar or temporary display character, or `nil` when no glyph matches.
- [`GSFont characterForGlyph:`](/Core/GlyphsCore/GSFont/characterForGlyph:) — Returns the primary Unicode scalar of an encoded glyph or a temporary display character for an unencoded glyph.
- [`GSFont.charsCache`](/Core/GlyphsCore/GSFont/charsCache) — The lookup cache used to map Unicode strings and temporary display characters to glyphs.
- [`GSFont glyphFromCharsCacheForUnicode:`](/Core/GlyphsCore/GSFont/glyphFromCharsCacheForUnicode:) — Returns the cached local or imported glyph associated with a Unicode code point, or `nil` when no glyph matches.
- [`GSFont glyphFromCharsCacheForChar:`](/Core/GlyphsCore/GSFont/glyphFromCharsCacheForChar:) — Returns the cached local or imported glyph represented by a Unicode scalar or temporary display character, or `nil` when no glyph matches.
- [`GSFont glyphFromCharsCacheForCharFast:`](/Core/GlyphsCore/GSFont/glyphFromCharsCacheForCharFast:) — Returns the cached local or imported glyph represented by a Unicode scalar or temporary display character, or `nil` when no glyph matches.
- [`GSFont preloadCharCache`](/Core/GlyphsCore/GSFont/preloadCharCache) — Prepares the character cache from the local and imported glyphs.
- [`GSFont charStringFromDisplayString:`](/Core/GlyphsCore/GSFont/charStringFromDisplayString:) — Converts display text containing slash-prefixed glyph names to a string of display characters.

### Adding and Removing Glyphs

- [`GSFont newGlyphWithName:`](/Core/GlyphsCore/GSFont/newGlyphWithName:) — Creates a glyph configured for the font without adding it to [`GSFont.glyphs`](/Core/GlyphsCore/GSFont/glyphs).
- [`GSFont newGlyphWithName:changeName:`](/Core/GlyphsCore/GSFont/newGlyphWithName:changeName:) — Creates a glyph configured for the font without adding it to [`GSFont.glyphs`](/Core/GlyphsCore/GSFont/glyphs).
- [`GSFont addGlyph:`](/Core/GlyphsCore/GSFont/addGlyph:) — Adds a glyph to the font.
- [`GSFont addGlyphFast:`](/Core/GlyphsCore/GSFont/addGlyphFast:) — Adds a glyph without undo, observer notifications, synchronization, or cache updates.
- [`GSFont addGlyphsFromArray:`](/Core/GlyphsCore/GSFont/addGlyphsFromArray:) — Adds a sequence of glyphs to the font as one undoable change.
- [`GSFont removeGlyph:`](/Core/GlyphsCore/GSFont/removeGlyph:) — Removes a glyph from the font and clears its parent.
- [`GSFont removeGlyphs:`](/Core/GlyphsCore/GSFont/removeGlyphs:) — Removes a sequence of glyphs from the font as one undoable change.
- [`GSFont generateGlyphs:callback:`](/Core/GlyphsCore/GSFont/generateGlyphs:callback:) — Creates and adds glyphs for a sequence of glyph names and Unicode ranges.

### Glyph Names

- [`GSFont safeNameForGlyph:`](/Core/GlyphsCore/GSFont/safeNameForGlyph:) — A name that is unique among the local glyphs in the font.
- [`GSFont safeNameForName:`](/Core/GlyphsCore/GSFont/safeNameForName:) — A name that is unique among the local glyphs in the font.
- [`GSFont safeSuffixForGlyph:`](/Core/GlyphsCore/GSFont/safeSuffixForGlyph:) — A suffix that makes the glyph name unique among the local glyphs in the font, or `nil` when no suffix is needed.
- [`GSFont makeSafeGlyphInfo:`](/Core/GlyphsCore/GSFont/makeSafeGlyphInfo:) — Makes the glyph name unique among the local glyphs in the font.
- [`GSFont glyphHasChangedName:oldName:`](/Core/GlyphsCore/GSFont/glyphHasChangedName:oldName:) — Notifies the font that a glyph name has changed.
- [`GSFont needsUpdateRenamedGlyphs:`](/Core/GlyphsCore/GSFont/needsUpdateRenamedGlyphs:) — The kinds of references affected by renamed glyphs.
- [`GSFont updateRenamedGlyphs:`](/Core/GlyphsCore/GSFont/updateRenamedGlyphs:) — Updates references to renamed glyphs after confirmation when affected references exist.
- [`GSFont doUpdateRenamedGlyphs:`](/Core/GlyphsCore/GSFont/doUpdateRenamedGlyphs:) — Updates references to renamed glyphs without requesting confirmation.
- [`GSFont code:containsGlyphName:`](/Core/GlyphsCore/GSFont/code:containsGlyphName:) — Returns whether OpenType feature code contains a glyph name as a complete token.

### Glyph Name Queries

- [`GSFont glyphNamesForWildcard:contextLabel:error:`](/Core/GlyphsCore/GSFont/glyphNamesForWildcard:contextLabel:error:) — Returns the local glyph names matching a name query.
- [`GSFont expandWildcardsInNameList:contextLabel:error:`](/Core/GlyphsCore/GSFont/expandWildcardsInNameList:contextLabel:error:) — Expands name queries into a set of local glyph names.
- [`GSFont baseName:forWildCard:`](/Core/GlyphsCore/GSFont/baseName:forWildCard:) — Returns the part of a matching glyph name represented by `*` in a name pattern, or `nil` when the pattern does not contain `*` or the glyph name is shorter than the pattern.
- [`GSFont prepareName2Glyph`](/Core/GlyphsCore/GSFont/prepareName2Glyph) — Rebuilds the cache that maps local glyph names to glyphs.

### Exporting Glyphs

- [`GSFont.exportingGlyphNames`](/Core/GlyphsCore/GSFont/exportingGlyphNames) — The names of the local and imported glyphs that are included in export.
- [`GSFont filterKeepGlyphsCodes:`](/Core/GlyphsCore/GSFont/filterKeepGlyphsCodes:) — Returns the glyph names for Unicode code points that resolve to local or imported glyphs included in export.
- [`GSFont keepsGlyphs:`](/Core/GlyphsCore/GSFont/keepsGlyphs:) — Returns whether all named local or imported glyphs are present and included in export.
- [`GSFont keepsGlyphsCode:`](/Core/GlyphsCore/GSFont/keepsGlyphsCode:) — Returns whether all Unicode code points resolve to local or imported glyphs included in export.
- [`GSFont filterKeepGlyphs:`](/Core/GlyphsCore/GSFont/filterKeepGlyphs:) — Returns the names of local or imported glyphs that are present and included in export.
- [`GSFont filterGlyphs:`](/Core/GlyphsCore/GSFont/filterGlyphs:) — Returns the names and Unicode queries that resolve to local or imported glyphs in the font.
- [`GSFont countOfGlyphsWithInfosByName:`](/Core/GlyphsCore/GSFont/countOfGlyphsWithInfosByName:) — Returns the number of matches found for local or imported glyph infos in the font.
- [`GSFont countOfGlyphsWithCode:`](/Core/GlyphsCore/GSFont/countOfGlyphsWithCode:) — Returns the number of Unicode code points that resolve to local or imported glyphs in the font.

### Glyph Relationships

- [`GSFont componentGlyphNamesForGlyph:`](/Core/GlyphsCore/GSFont/componentGlyphNamesForGlyph:) — Returns component glyph names used by a glyph.
- [`GSFont componentGlyphNamesForGlyph:inMasterWithID:`](/Core/GlyphsCore/GSFont/componentGlyphNamesForGlyph:inMasterWithID:) — Returns component glyph names used by a glyph on a master.
- [`GSFont glyphsContainingComponentWithName:masterId:`](/Core/GlyphsCore/GSFont/glyphsContainingComponentWithName:masterId:) — Returns glyphs that reference a component glyph on a master layer.
- [`GSFont glyphsInfo`](/Core/GlyphsCore/GSFont/glyphsInfo) — Glyph information used to derive glyph metadata and component relationships.

### Glyph Ordering and Caches

- [`GSFont.keepAlternatesTogether`](/Core/GlyphsCore/GSFont/keepAlternatesTogether) — Keeps alternate glyphs next to their base glyph when sorting glyphs.
- [`GSFont sortGlyphs`](/Core/GlyphsCore/GSFont/sortGlyphs) — Sorts the font’s glyphs using the font glyph order and glyph metadata.
- [`GSFont sortGlyphs:withList:`](/Core/GlyphsCore/GSFont/sortGlyphs:withList:) — Sorts a mutable glyph array using a glyph-name order list and glyph metadata.
- [`GSFont resetCache`](/Core/GlyphsCore/GSFont/resetCache) — Invalidates the glyph name and identifier lookup caches.

### Axes

- [`GSFont.axes`](/Core/GlyphsCore/GSFont/axes) — The font axes defining the font design space.
- [`GSFont countOfAxes`](/Core/GlyphsCore/GSFont/countOfAxes) — The number of font axes.
- [`GSFont objectInAxesAtIndex:`](/Core/GlyphsCore/GSFont/objectInAxesAtIndex:) — The font axis at an index, or `nil` when the index is out of range.
- [`GSFont indexOfObjectInAxes:`](/Core/GlyphsCore/GSFont/indexOfObjectInAxes:) — Returns the index of a font axis, or `NSNotFound` when the axis is not in the font.
- [`GSFont.canonicalAxes`](/Core/GlyphsCore/GSFont/canonicalAxes) — The canonical font axes.
- [`GSFont axisForId:`](/Core/GlyphsCore/GSFont/axisForId:) — Returns the font axis with an identifier, or `nil` when no axis matches.
- [`GSFont axisForName:`](/Core/GlyphsCore/GSFont/axisForName:) — Returns the font axis with a name, or `nil` when no axis matches.
- [`GSFont axisForTag:`](/Core/GlyphsCore/GSFont/axisForTag:) — Returns the font axis with an OpenType variation tag, or `nil` when no axis matches.
- [`GSFont addAxis:`](/Core/GlyphsCore/GSFont/addAxis:) — Adds a font axis.
- [`GSFont insertObject:inAxesAtIndex:`](/Core/GlyphsCore/GSFont/insertObject:inAxesAtIndex:) — Inserts a font axis at an index.
- [`GSFont removeObjectFromAxes:`](/Core/GlyphsCore/GSFont/removeObjectFromAxes:) — Removes a font axis.
- [`GSFont removeObjectFromAxesAtIndex:`](/Core/GlyphsCore/GSFont/removeObjectFromAxesAtIndex:) — Removes the font axis at an index.
- [`GSFont legacyAxes`](/Core/GlyphsCore/GSFont/legacyAxes) — Returns font axes derived from legacy master coordinate data.

### Axis Values

- [`GSFont axesValueSteps:`](/Core/GlyphsCore/GSFont/axesValueSteps:) — Returns sorted internal coordinate values for all masters and a glyph.
- [`GSFont axesValueSteps:glyph:`](/Core/GlyphsCore/GSFont/axesValueSteps:glyph:) — Returns sorted internal coordinate values for the selected masters and glyph.
- [`GSFont variationAxesRanges:`](/Core/GlyphsCore/GSFont/variationAxesRanges:) — Returns internal variation ranges keyed by OpenType variation tag.
- [`GSFont axesPositionsFromAxes:master:`](/Core/GlyphsCore/GSFont/axesPositionsFromAxes:master:) — Returns editable axis positions for a master in font-axis order.
- [`GSFont axesValueListFromAxes:axesValues:`](/Core/GlyphsCore/GSFont/axesValueListFromAxes:axesValues:) — Returns a newly allocated list of internal axis positions in font-axis order.
- [`GSFont axesValueListFromAxes:axesValues:intoList:`](/Core/GlyphsCore/GSFont/axesValueListFromAxes:axesValues:intoList:) — Writes internal axis positions into a caller-provided list in font-axis order.
- [`GSFont axesValuesFromAxes:axesValuesList:`](/Core/GlyphsCore/GSFont/axesValuesFromAxes:axesValuesList:) — Returns axis values from a list of internal axis positions.

### Masters

- [`GSFont.fontMasters`](/Core/GlyphsCore/GSFont/fontMasters) — The local masters of the font.
- [`GSFont.countOfFontMasters`](/Core/GlyphsCore/GSFont/countOfFontMasters) — The number of local masters.
- [`GSFont fontMasterAtIndex:`](/Core/GlyphsCore/GSFont/fontMasterAtIndex:) — Returns the local or imported master at an index, or `nil` when the index is out of bounds.
- [`GSFont indexOfFontMaster:`](/Core/GlyphsCore/GSFont/indexOfFontMaster:) — Returns the index of a local master, or `NSNotFound` when the master is not local.
- [`GSFont fontMasterForId:`](/Core/GlyphsCore/GSFont/fontMasterForId:) — Returns the local or imported master with an identifier, or `nil` when no master matches.
- [`GSFont fontMasterForName:`](/Core/GlyphsCore/GSFont/fontMasterForName:) — Returns the first local or imported master with a name, or `nil` when no master matches.
- [`GSFont defaultFontMaster:`](/Core/GlyphsCore/GSFont/defaultFontMaster:) — Returns the master used as the default interpolation origin.
- [`GSFont newMasterId`](/Core/GlyphsCore/GSFont/newMasterId) — Returns an unused master identifier.
- [`GSFont insertFontMaster:atIndex:`](/Core/GlyphsCore/GSFont/insertFontMaster:atIndex:) — Inserts a local master without adding layer content.
- [`GSFont addFontMaster:`](/Core/GlyphsCore/GSFont/addFontMaster:) — Appends a local master without adding layer content.
- [`GSFont removeFontMaster:`](/Core/GlyphsCore/GSFont/removeFontMaster:) — Removes a local master without removing layer content.

### Master Content

- [`GSFont addFontMasterAndContent:`](/Core/GlyphsCore/GSFont/addFontMasterAndContent:) — Adds a local master and copies the content associated with it into the font.
- [`GSFont insertFontMasterAndContent:atIndex:`](/Core/GlyphsCore/GSFont/insertFontMasterAndContent:atIndex:) — Inserts a local master and copies the content associated with it into the font.
- [`GSFont removeFontMasterAndContent:`](/Core/GlyphsCore/GSFont/removeFontMasterAndContent:) — Removes a local master and the layer content associated with it.
- [`GSFont replaceFontMasterAtIndex:withFontMaster:`](/Core/GlyphsCore/GSFont/replaceFontMasterAtIndex:withFontMaster:) — Replaces a local master at an index without changing layer content.
- [`GSFont copyGlyphs:sourceFontMasterID:targetFontMasterID:addMissing:`](/Core/GlyphsCore/GSFont/copyGlyphs:sourceFontMasterID:targetFontMasterID:addMissing:) — Copies glyph layers associated with one master identifier to another master identifier.
- [`GSFont copyLayersFrom:sourceFontMasterID:targetFontMasterID:`](/Core/GlyphsCore/GSFont/copyLayersFrom:sourceFontMasterID:targetFontMasterID:) — Copies layers associated with one master identifier to another master identifier.
- [`GSFont copyInfoFrom:sourceFontMasterID:targetFontMasterID:`](/Core/GlyphsCore/GSFont/copyInfoFrom:sourceFontMasterID:targetFontMasterID:) — Copies master-specific font information from one master identifier to another master identifier.
- [`GSFont addFontAsNewMaster:`](/Core/GlyphsCore/GSFont/addFontAsNewMaster:) — Adds a master from another font as a new local master.
- [`GSFont addMasterFromInstance:error:`](/Core/GlyphsCore/GSFont/addMasterFromInstance:error:) — Adds the generated contents of an instance as a new local master.

### Imported Masters and Fonts

- [`GSFont.importedFontMasters`](/Core/GlyphsCore/GSFont/importedFontMasters) — The masters imported from linked fonts.
- [`GSFont.importedFonts`](/Core/GlyphsCore/GSFont/importedFonts) — The fonts that supply imported glyphs or imported masters.
- [`GSFont.allMasters`](/Core/GlyphsCore/GSFont/allMasters) — The local and imported masters of the font.
- [`GSFont.countOfAllMasters`](/Core/GlyphsCore/GSFont/countOfAllMasters) — The number of local and imported masters.
- [`GSFont allMasterAtIndex:`](/Core/GlyphsCore/GSFont/allMasterAtIndex:) — Returns the local or imported master at an index, or `nil` when the index is out of bounds.
- [`GSFont indexOfObjectInAllMasters:`](/Core/GlyphsCore/GSFont/indexOfObjectInAllMasters:) — Returns the index of a local or imported master, or `NSNotFound` when the master is not in the font.
- [`GSFont reloadLinkedFonts:`](/Core/GlyphsCore/GSFont/reloadLinkedFonts:) — Reloads linked fonts and refreshes imported masters and imported glyphs.

### Master Locations

- [`GSFont masterNearestToPosition:`](/Core/GlyphsCore/GSFont/masterNearestToPosition:) — Returns the master nearest to an internal design-space position.
- [`GSFont masterNearestToPosition:glyph:`](/Core/GlyphsCore/GSFont/masterNearestToPosition:glyph:) — Returns the master or Intermediate layer nearest to an internal design-space position.
- [`GSFont masterAtPosition:`](/Core/GlyphsCore/GSFont/masterAtPosition:) — Returns the master at an internal design-space position.
- [`GSFont masterRangesInternMin:internDefault:internMax:externMin:externDefault:externMax:mastersIntern:mastersExtern:defaultMaster:error:`](/Core/GlyphsCore/GSFont/masterRangesInternMin:internDefault:internMax:externMin:externDefault:externMax:mastersIntern:mastersExtern:defaultMaster:error:) — Calculates internal and external coordinate ranges for the font axes.
- [`GSFont masterRangesFor:masters:customParameters:internMin:internDefault:internMax:externMin:externDefault:externMax:mastersIntern:mastersExtern:defaultMaster:error:`](/Core/GlyphsCore/GSFont/masterRangesFor:masters:customParameters:internMin:internDefault:internMax:externMin:externDefault:externMax:mastersIntern:mastersExtern:defaultMaster:error:) — Calculates internal and external coordinate ranges for font axes and masters.

### Instances

- [`GSFont.instances`](/Core/GlyphsCore/GSFont/instances) — Export configurations of the font.
- [`GSFont countOfInstances`](/Core/GlyphsCore/GSFont/countOfInstances) — The number of instances in the font.
- [`GSFont objectInInstancesAtIndex:`](/Core/GlyphsCore/GSFont/objectInInstancesAtIndex:) — Returns the instance at an index, or `nil` when the index is out of range.
- [`GSFont insertObject:inInstancesAtIndex:`](/Core/GlyphsCore/GSFont/insertObject:inInstancesAtIndex:) — Inserts an instance at an index.
- [`GSFont insertInstance:atIndex:`](/Core/GlyphsCore/GSFont/insertInstance:atIndex:) — Inserts an instance at an index.
- [`GSFont addInstance:`](/Core/GlyphsCore/GSFont/addInstance:) — Adds an instance to the font.
- [`GSFont addInstanceFast:`](/Core/GlyphsCore/GSFont/addInstanceFast:) — Adds an instance without undo registration or change notifications.
- [`GSFont removeInstance:`](/Core/GlyphsCore/GSFont/removeInstance:) — Removes an instance from the font.
- [`GSFont removeInstances:`](/Core/GlyphsCore/GSFont/removeInstances:) — Removes instances from the font.
- [`GSFont removeObjectFromInstancesAtIndex:`](/Core/GlyphsCore/GSFont/removeObjectFromInstancesAtIndex:) — Removes the instance at an index.
- [`GSFont replaceObjectInInstancesAtIndex:withObject:`](/Core/GlyphsCore/GSFont/replaceObjectInInstancesAtIndex:withObject:) — Replaces the instance at an index.
- [`GSFont instanceGroups`](/Core/GlyphsCore/GSFont/instanceGroups) — Instance groups for UI presentation.
- [`GSFont instancesUnique`](/Core/GlyphsCore/GSFont/instancesUnique) — Instances with unique interpolation locations.
- [`GSFont instanceAtPosition:`](/Core/GlyphsCore/GSFont/instanceAtPosition:) — Returns the instance at an internal design-space position.
- [`GSFont instanceNearestToPosition:distance:`](/Core/GlyphsCore/GSFont/instanceNearestToPosition:distance:) — Returns the instance nearest to an internal design-space position.

### Metrics

- [`GSFont.metrics`](/Core/GlyphsCore/GSFont/metrics) — Font-wide metrics definitions.
- [`GSFont.metricsContent`](/Core/GlyphsCore/GSFont/metricsContent) — KVO marker for changes that affect metrics.
- [`GSFont countOfMetrics`](/Core/GlyphsCore/GSFont/countOfMetrics) — Returns the number of font-wide metrics definitions.
- [`GSFont objectInMetricsAtIndex:`](/Core/GlyphsCore/GSFont/objectInMetricsAtIndex:) — Returns the metric at an index.
- [`GSFont objectInMetricsWithName:`](/Core/GlyphsCore/GSFont/objectInMetricsWithName:) — Returns the first metric with a name.
- [`GSFont objectInMetricsWithType:withName:`](/Core/GlyphsCore/GSFont/objectInMetricsWithType:withName:) — Returns the first metric with a type and name.
- [`GSFont objectInMetricsWithType:withName:filter:`](/Core/GlyphsCore/GSFont/objectInMetricsWithType:withName:filter:) — Returns the first metric with a type, name, and filter.
- [`GSFont addMetric:`](/Core/GlyphsCore/GSFont/addMetric:) — Adds a metric definition to the font.
- [`GSFont removeObjectFromMetrics:`](/Core/GlyphsCore/GSFont/removeObjectFromMetrics:) — Removes a metric definition from the font.
- [`GSFont sortMetrics`](/Core/GlyphsCore/GSFont/sortMetrics) — Sorts metric definitions by filter and position.
- [`GSFont generateMetrics:`](/Core/GlyphsCore/GSFont/generateMetrics:) — Creates metrics from dictionary descriptions.
- [`GSFont updateMetrics`](/Core/GlyphsCore/GSFont/updateMetrics) — Marks layer metrics for recalculation.
- [`GSFont calculateDefaultWidth:`](/Core/GlyphsCore/GSFont/calculateDefaultWidth:) — Assigns default layer widths for a glyph.

### Stems

- [`GSFont.stems`](/Core/GlyphsCore/GSFont/stems) — Font-wide stem definitions.
- [`GSFont countOfStems`](/Core/GlyphsCore/GSFont/countOfStems) — Returns the number of stem definitions.
- [`GSFont objectInStemsAtIndex:`](/Core/GlyphsCore/GSFont/objectInStemsAtIndex:) — Returns the stem at an index.
- [`GSFont stemForId:`](/Core/GlyphsCore/GSFont/stemForId:) — Returns the first stem with an identifier.
- [`GSFont stemForName:`](/Core/GlyphsCore/GSFont/stemForName:) — Returns the first stem with a name.
- [`GSFont addStem:`](/Core/GlyphsCore/GSFont/addStem:) — Adds a stem definition to the font.
- [`GSFont removeObjectFromStems:`](/Core/GlyphsCore/GSFont/removeObjectFromStems:) — Removes a stem definition from the font.

### Numbers

- [`GSFont.numbers`](/Core/GlyphsCore/GSFont/numbers) — Font-wide number definitions.
- [`GSFont countOfNumbers`](/Core/GlyphsCore/GSFont/countOfNumbers) — Returns the number of number definitions.
- [`GSFont objectInNumbersAtIndex:`](/Core/GlyphsCore/GSFont/objectInNumbersAtIndex:) — Returns the number definition at an index.
- [`GSFont numberForId:`](/Core/GlyphsCore/GSFont/numberForId:) — Returns the first number definition with an identifier.
- [`GSFont numberForName:`](/Core/GlyphsCore/GSFont/numberForName:) — Returns the first number definition with a name.
- [`GSFont addNumber:`](/Core/GlyphsCore/GSFont/addNumber:) — Adds a number definition to the font.
- [`GSFont removeObjectFromNumbers:`](/Core/GlyphsCore/GSFont/removeObjectFromNumbers:) — Removes a number definition from the font.

### Grid

- [`GSFont.gridMain`](/Core/GlyphsCore/GSFont/gridMain) — Main grid spacing used for rounding coordinates.
- [`GSFont.gridSubDivision`](/Core/GlyphsCore/GSFont/gridSubDivision) — Subdivision applied to the main grid spacing.
- [`GSFont gridLength`](/Core/GlyphsCore/GSFont/gridLength) — Effective grid length used for rounding coordinates.
- [`GSFont.gridMainStore`](/Core/GlyphsCore/GSFont/gridMainStore) — Stored main grid spacing.
- [`GSFont.gridSubDivisionStore`](/Core/GlyphsCore/GSFont/gridSubDivisionStore) — Stored grid subdivision.

### Editing Settings

- [`GSFont.keyboardIncrement`](/Core/GlyphsCore/GSFont/keyboardIncrement) — Small keyboard movement step in font units.
- [`GSFont.keyboardIncrementBig`](/Core/GlyphsCore/GSFont/keyboardIncrementBig) — Larger keyboard movement step in font units.
- [`GSFont.keyboardIncrementHuge`](/Core/GlyphsCore/GSFont/keyboardIncrementHuge) — Largest keyboard movement step in font units.
- [`GSFont.snapToObjects`](/Core/GlyphsCore/GSFont/snapToObjects) — A Boolean value that controls whether editing operations snap to nearby objects.
- [`GSFont.previewRemoveOverlap`](/Core/GlyphsCore/GSFont/previewRemoveOverlap) — A Boolean value that controls whether preview drawing removes overlaps.
- [`GSFont.displayStrings`](/Core/GlyphsCore/GSFont/displayStrings) — Text strings stored for edit tabs.

### Kerning

- [`GSFont.kerningLTR`](/Core/GlyphsCore/GSFont/kerningLTR) — Left-to-right kerning data.
- [`GSFont.kerningRTL`](/Core/GlyphsCore/GSFont/kerningRTL) — Right-to-left kerning data.
- [`GSFont.kerningVertical`](/Core/GlyphsCore/GSFont/kerningVertical) — Vertical kerning data.
- [`GSFont kerningForDirection:`](/Core/GlyphsCore/GSFont/kerningForDirection:) — Kerning dictionary for a writing direction.
- [`GSFont masterKerning:direction:`](/Core/GlyphsCore/GSFont/masterKerning:direction:) — Kerning dictionary for one master and writing direction.
- [`GSFont kerningForFontMasterID:firstGlyph:secondGlyph:direction:`](/Core/GlyphsCore/GSFont/kerningForFontMasterID:firstGlyph:secondGlyph:direction:) — Kerning value between two glyphs in a master and writing direction, or `NSNotFound` when no pair applies.
- [`GSFont kerningForFontMasterDict:firstGlyph:secondGlyph:direction:`](/Core/GlyphsCore/GSFont/kerningForFontMasterDict:firstGlyph:secondGlyph:direction:) — Kerning value between two glyphs in a master kerning dictionary, or `NSNotFound` when no pair applies.
- [`GSFont kerningForFontMasterID:leftKey:rightKey:direction:`](/Core/GlyphsCore/GSFont/kerningForFontMasterID:leftKey:rightKey:direction:) — Kerning value for a pair of kerning keys, or `NSNotFound` when no pair is stored.
- [`GSFont setKerningForFontMasterID:leftKey:rightKey:value:direction:`](/Core/GlyphsCore/GSFont/setKerningForFontMasterID:leftKey:rightKey:value:direction:) — Sets the kerning value for a pair of kerning keys.
- [`GSFont removeKerningForFontMasterID:leftKey:rightKey:direction:`](/Core/GlyphsCore/GSFont/removeKerningForFontMasterID:leftKey:rightKey:direction:) — Removes the kerning value for a pair of kerning keys.
- [`GSFont setKerning:forMaster:direction:`](/Core/GlyphsCore/GSFont/setKerning:forMaster:direction:) — Replaces the kerning dictionary for one master and writing direction.
- [`GSFont addKerning:forMaster:direction:`](/Core/GlyphsCore/GSFont/addKerning:forMaster:direction:) — Adds kerning pairs to the kerning dictionary for one master and writing direction.
- [`GSFont masterIDforMetrics:`](/Core/GlyphsCore/GSFont/masterIDforMetrics:) — Returns the master identifier used for metrics and kerning data.
- [`GSFont masterIDforMetrics:hasLink:`](/Core/GlyphsCore/GSFont/masterIDforMetrics:hasLink:) — Returns the master identifier used for metrics and kerning data.
- [`GSFont.lastKerningChange`](/Core/GlyphsCore/GSFont/lastKerningChange)

### Contextual Kerning

- [`GSFont.kerningContext`](/Core/GlyphsCore/GSFont/kerningContext) — Contextual kerning data.
- [`GSFont contextKerningForKey:fontMasterID:`](/Core/GlyphsCore/GSFont/contextKerningForKey:fontMasterID:) — Contextual kerning value for a context key and master, or `NSNotFound` when no value is stored.
- [`GSFont setContextKerningForKey:fontMasterID:value:`](/Core/GlyphsCore/GSFont/setContextKerningForKey:fontMasterID:value:) — Sets the contextual kerning value for a context key and master.
- [`GSFont removeContextKerningForKey:fontMasterID:`](/Core/GlyphsCore/GSFont/removeContextKerningForKey:fontMasterID:) — Removes the contextual kerning value for a context key and master.
- [`GSFont replaceContextKerningKey:key:`](/Core/GlyphsCore/GSFont/replaceContextKerningKey:key:) — Replaces a context key while keeping its master values.
- [`GSFont parseContextKey:`](/Core/GlyphsCore/GSFont/parseContextKey:) — Parses a contextual kerning key into glyph tokens and class tokens.

### Kerning Maintenance

- [`GSFont compressKerningForDirection:`](/Core/GlyphsCore/GSFont/compressKerningForDirection:) — Converts redundant glyph kerning to group kerning for a writing direction.
- [`GSFont cleanUpKerningForDirection:`](/Core/GlyphsCore/GSFont/cleanUpKerningForDirection:) — Removes kerning pairs that reference missing glyphs or unused groups.
- [`GSFont sortKerning`](/Core/GlyphsCore/GSFont/sortKerning) — Sorts the kerning dictionaries into font order.
- [`GSFont replaceKey:forMasterIds:leftKey:rightKey:side:writingDirection:`](/Core/GlyphsCore/GSFont/replaceKey:forMasterIds:leftKey:rightKey:side:writingDirection:) — Replaces a kerning key in selected masters and writing direction.
- [`GSFont migrateRTLKerning`](/Core/GlyphsCore/GSFont/migrateRTLKerning) — Moves right-to-left kerning from left-to-right kerning data to right-to-left kerning data.
- [`GSFont migrateRTLKerningDict:doClasses:`](/Core/GlyphsCore/GSFont/migrateRTLKerningDict:doClasses:) — Returns migrated right-to-left kerning data from a kerning dictionary.
- [`GSFont backportRTLKerning`](/Core/GlyphsCore/GSFont/backportRTLKerning) — Returns right-to-left kerning converted back into left-to-right kerning data.
- [`GSFont convertKerning:`](/Core/GlyphsCore/GSFont/convertKerning:) — Converts imported kerning from glyph names to glyph identifiers.

### Layout Features

- [`GSFont.features`](/Core/GlyphsCore/GSFont/features) — Layout features used when compiling OpenType feature code.
- [`GSFont countOfFeatures`](/Core/GlyphsCore/GSFont/countOfFeatures) — Number of layout features.
- [`GSFont objectInFeaturesAtIndex:`](/Core/GlyphsCore/GSFont/objectInFeaturesAtIndex:) — Layout feature at an index, or `nil` when the index is out of range.
- [`GSFont indexOfFeature:`](/Core/GlyphsCore/GSFont/indexOfFeature:) — Index of a layout feature, or `NSNotFound` when the feature is not in the font.
- [`GSFont featureForTag:`](/Core/GlyphsCore/GSFont/featureForTag:) — Returns the first layout feature with a tag.
- [`GSFont activeFeatureForTag:`](/Core/GlyphsCore/GSFont/activeFeatureForTag:) — Returns the first enabled layout feature with a tag.
- [`GSFont automaticFeatureForTag:`](/Core/GlyphsCore/GSFont/automaticFeatureForTag:) — Returns the first automatic layout feature with a tag.
- [`GSFont automaticFeatureForTag:hasAnyFeature:`](/Core/GlyphsCore/GSFont/automaticFeatureForTag:hasAnyFeature:) — Returns the first automatic layout feature with a tag.
- [`GSFont addFeature:`](/Core/GlyphsCore/GSFont/addFeature:) — Adds a layout feature.
- [`GSFont insertObject:inFeaturesAtIndex:`](/Core/GlyphsCore/GSFont/insertObject:inFeaturesAtIndex:) — Inserts a layout feature at an index.
- [`GSFont removeFeature:`](/Core/GlyphsCore/GSFont/removeFeature:) — Removes a layout feature.
- [`GSFont removeObjectFromFeaturesAtIndex:`](/Core/GlyphsCore/GSFont/removeObjectFromFeaturesAtIndex:) — Removes the layout feature at an index.
- [`GSFont replaceObjectInFeaturesAtIndex:withObject:`](/Core/GlyphsCore/GSFont/replaceObjectInFeaturesAtIndex:withObject:) — Replaces the layout feature at an index.
- [`GSFont updateFeatures:`](/Core/GlyphsCore/GSFont/updateFeatures:) — Updates automatic layout features and classes.
- [`GSFont importFeatures:error:`](/Core/GlyphsCore/GSFont/importFeatures:error:) — Imports OpenType feature code into the font.

### Layout Classes

- [`GSFont.classes`](/Core/GlyphsCore/GSFont/classes) — Layout classes in the font.
- [`GSFont mutableClasses`](/Core/GlyphsCore/GSFont/mutableClasses) — A mutable array of layout classes.
- [`GSFont countOfClasses`](/Core/GlyphsCore/GSFont/countOfClasses) — The number of layout classes.
- [`GSFont objectInClassesAtIndex:`](/Core/GlyphsCore/GSFont/objectInClassesAtIndex:) — The layout class at an index.
- [`GSFont indexOfObjectInClasses:`](/Core/GlyphsCore/GSFont/indexOfObjectInClasses:) — The index of a layout class, or `NSNotFound` when the class is not in the font.
- [`GSFont classForTag:`](/Core/GlyphsCore/GSFont/classForTag:) — The layout class with the specified name.
- [`GSFont addClass:`](/Core/GlyphsCore/GSFont/addClass:) — Adds a layout class.
- [`GSFont addClassFromCode:`](/Core/GlyphsCore/GSFont/addClassFromCode:) — Adds a layout class parsed from FEA class code.
- [`GSFont insertObject:inClassesAtIndex:`](/Core/GlyphsCore/GSFont/insertObject:inClassesAtIndex:) — Inserts a layout class at an index.
- [`GSFont removeClass:`](/Core/GlyphsCore/GSFont/removeClass:) — Removes a layout class.
- [`GSFont removeObjectFromClassesAtIndex:`](/Core/GlyphsCore/GSFont/removeObjectFromClassesAtIndex:) — Removes the layout class at an index.
- [`GSFont replaceObjectInClassesAtIndex:withObject:`](/Core/GlyphsCore/GSFont/replaceObjectInClassesAtIndex:withObject:) — Replaces the layout class at an index.

### Layout Prefixes

- [`GSFont.featurePrefixes`](/Core/GlyphsCore/GSFont/featurePrefixes) — Feature prefixes in the font.
- [`GSFont countOfFeaturePrefixes`](/Core/GlyphsCore/GSFont/countOfFeaturePrefixes) — The number of feature prefixes.
- [`GSFont objectInFeaturePrefixesAtIndex:`](/Core/GlyphsCore/GSFont/objectInFeaturePrefixesAtIndex:) — The feature prefix at an index.
- [`GSFont featurePrefixForTag:`](/Core/GlyphsCore/GSFont/featurePrefixForTag:) — The feature prefix with the specified name.
- [`GSFont addFeaturePrefix:`](/Core/GlyphsCore/GSFont/addFeaturePrefix:) — Adds a feature prefix.
- [`GSFont insertObject:inFeaturePrefixesAtIndex:`](/Core/GlyphsCore/GSFont/insertObject:inFeaturePrefixesAtIndex:) — Inserts a feature prefix at an index.
- [`GSFont removeFeaturePrefix:`](/Core/GlyphsCore/GSFont/removeFeaturePrefix:) — Removes a feature prefix.
- [`GSFont removeObjectFromFeaturePrefixesAtIndex:`](/Core/GlyphsCore/GSFont/removeObjectFromFeaturePrefixesAtIndex:) — Removes the feature prefix at an index.
- [`GSFont replaceObjectInFeaturePrefixesAtIndex:withObject:`](/Core/GlyphsCore/GSFont/replaceObjectInFeaturePrefixesAtIndex:withObject:) — Replaces the feature prefix at an index.

### Layout Code

- [`GSFont feaBlockForFileName:`](/Core/GlyphsCore/GSFont/feaBlockForFileName:) — Returns the FEA block (feature, class, prefix) matching the given file name.
- [`GSFont addFeaBlockForFileName:code:`](/Core/GlyphsCore/GSFont/addFeaBlockForFileName:code:) — Adds a feature block to the font, basing the type and title on the file name.
- [`GSFont languagesWithLayoutRules`](/Core/GlyphsCore/GSFont/languagesWithLayoutRules) — Script and language tags that have layout rules in the compiled temporary font.

### Properties

- [`GSFont.properties`](/Core/GlyphsCore/GSFont/properties) — The font info properties stored in the font.
- [`GSFont countOfProperties`](/Core/GlyphsCore/GSFont/countOfProperties) — The number of font info properties.
- [`GSFont objectInPropertiesAtIndex:`](/Core/GlyphsCore/GSFont/objectInPropertiesAtIndex:) — The font info property at an index, or `nil` when the index is out of range.
- [`GSFont indexOfObjectInProperties:`](/Core/GlyphsCore/GSFont/indexOfObjectInProperties:) — Returns the index of a font info property, or `NSNotFound` when the property is not in the font.
- [`GSFont propertyForName:`](/Core/GlyphsCore/GSFont/propertyForName:) — The font info property for a property name, or `nil` when the font has no matching property.
- [`GSFont propertyForName:languageTag:`](/Core/GlyphsCore/GSFont/propertyForName:languageTag:) — The localized font info value for a property name and language tag, or `nil` when the font has no matching value.
- [`GSFont defaultPropertyForName:`](/Core/GlyphsCore/GSFont/defaultPropertyForName:) — The default-language value for a font info property, or `nil` when the font has no matching value.
- [`GSFont setProperty:value:languageTag:`](/Core/GlyphsCore/GSFont/setProperty:value:languageTag:) — Sets a font info value for a property name and language tag.
- [`GSFont setDefaultProperty:value:`](/Core/GlyphsCore/GSFont/setDefaultProperty:value:) — Sets the default-language value for a font info property.
- [`GSFont addProperty:`](/Core/GlyphsCore/GSFont/addProperty:) — Adds a font info property.
- [`GSFont addPropertyFast:`](/Core/GlyphsCore/GSFont/addPropertyFast:) — Adds a font info property without undo registration or change notifications.
- [`GSFont insertObject:inPropertiesAtIndex:`](/Core/GlyphsCore/GSFont/insertObject:inPropertiesAtIndex:) — Inserts a font info property at an index.
- [`GSFont removeObjectFromProperties:`](/Core/GlyphsCore/GSFont/removeObjectFromProperties:) — Removes a font info property.
- [`GSFont removeObjectFromPropertiesAtIndex:`](/Core/GlyphsCore/GSFont/removeObjectFromPropertiesAtIndex:) — Removes the font info property at an index.
- [`GSFont allowedPropertyKeys`](/Core/GlyphsCore/GSFont/allowedPropertyKeys) — The font info property names supported by the font.
- [`GSFont preferredFamilyNames:`](/Core/GlyphsCore/GSFont/preferredFamilyNames:) — The preferred localized family names.

### Custom Parameters

- [`GSFont.customParameters`](/Core/GlyphsCore/GSFont/customParameters) — Custom parameters stored in the font.
- [`GSFont countOfCustomParameters`](/Core/GlyphsCore/GSFont/countOfCustomParameters) — The number of custom parameters.
- [`GSFont objectInCustomParametersAtIndex:`](/Core/GlyphsCore/GSFont/objectInCustomParametersAtIndex:) — The custom parameter at an index.
- [`GSFont customParameterForKey:`](/Core/GlyphsCore/GSFont/customParameterForKey:) — The first custom parameter with a name.
- [`GSFont customParameterActiveForKey:`](/Core/GlyphsCore/GSFont/customParameterActiveForKey:) — The first active custom parameter with a name.
- [`GSFont customValueForKey:`](/Core/GlyphsCore/GSFont/customValueForKey:) — The value of an active custom parameter.
- [`GSFont customBoolValueForKey:`](/Core/GlyphsCore/GSFont/customBoolValueForKey:) — The Boolean value of an active custom parameter.
- [`GSFont customColorValueForKey:`](/Core/GlyphsCore/GSFont/customColorValueForKey:) — The color value of an active custom parameter.
- [`GSFont setCustomValue:forKey:`](/Core/GlyphsCore/GSFont/setCustomValue:forKey:) — Sets the value of a custom parameter.
- [`GSFont addCustomParameter:`](/Core/GlyphsCore/GSFont/addCustomParameter:) — Adds a custom parameter.
- [`GSFont insertObject:inCustomParametersAtIndex:`](/Core/GlyphsCore/GSFont/insertObject:inCustomParametersAtIndex:) — Inserts a custom parameter at an index.
- [`GSFont removeObjectFromCustomParameters:`](/Core/GlyphsCore/GSFont/removeObjectFromCustomParameters:) — Removes a custom parameter.
- [`GSFont removeObjectFromCustomParametersAtIndex:`](/Core/GlyphsCore/GSFont/removeObjectFromCustomParametersAtIndex:) — Removes the custom parameter at an index.
- [`GSFont removeObjectFromCustomParametersForKey:`](/Core/GlyphsCore/GSFont/removeObjectFromCustomParametersForKey:) — Removes the first custom parameter with a name.
- [`GSFont replaceObjectInCustomParametersAtIndex:withObject:`](/Core/GlyphsCore/GSFont/replaceObjectInCustomParametersAtIndex:withObject:) — Replaces the custom parameter at an index.
- [`GSFont invalidateCustomParameterCache`](/Core/GlyphsCore/GSFont/invalidateCustomParameterCache) — Invalidates cached active custom parameter values.

### Colors

- [`GSFont.colorSpace`](/Core/GlyphsCore/GSFont/colorSpace) — The RGB color space used by document colors in the font.
- [`GSFont setColorSpace:usingMethod:`](/Core/GlyphsCore/GSFont/setColorSpace:usingMethod:) — Changes the color space used by document colors in the font.
- [`GSFont matchingColorFromColor:`](/Core/GlyphsCore/GSFont/matchingColorFromColor:) — Returns the given color converted to match the color space of the font.
- [`GSFont transformColorsUsingBlock:`](/Core/GlyphsCore/GSFont/transformColorsUsingBlock:) — Passes each document color to the given block and updates it if the block returns a new color.

### Color Label

- [`GSFont.color`](/Core/GlyphsCore/GSFont/color) — The color label used to organize the font, or `nil` if no color label is assigned.
- [`GSFont.colorIndex`](/Core/GlyphsCore/GSFont/colorIndex) — A standard color label, or [`GSLabelColor.GSLabelColorNoColor`](/Core/GlyphsCore/GSLabelColor/GSLabelColorNoColor) if the font has a custom color label or no color label.

### User Data

- [`GSFont.userData`](/Core/GlyphsCore/GSFont/userData)
- [`GSFont userDataForKey:`](/Core/GlyphsCore/GSFont/userDataForKey:) — Returns user data for a key, or `nil` if no value is set.
- [`GSFont setUserData:forKey:`](/Core/GlyphsCore/GSFont/setUserData:forKey:) — Sets user data for a key.
- [`GSFont removeUserDataForKey:`](/Core/GlyphsCore/GSFont/removeUserDataForKey:) — Removes user data for a key.

### Temporary Data

- [`GSFont.tempData`](/Core/GlyphsCore/GSFont/tempData) — Runtime data stored on the font.
- [`GSFont tempDataForKey:`](/Core/GlyphsCore/GSFont/tempDataForKey:) — Returns temporary data for a key, or `nil` if no value is set.
- [`GSFont setTempData:forKey:`](/Core/GlyphsCore/GSFont/setTempData:forKey:) — Sets temporary data for a key.

### Undo

- [`GSFont.undoManager`](/Core/GlyphsCore/GSFont/undoManager) — The undo manager used for font-level changes, or `nil` when no document provides one.
- [`GSFont disableUndo`](/Core/GlyphsCore/GSFont/disableUndo) — Disables undo registration for the font and its glyphs.
- [`GSFont enableUndo`](/Core/GlyphsCore/GSFont/enableUndo) — Enables undo registration for the font and its glyphs.

### Change Tracking

- [`GSFont elementDidChange:`](/Core/GlyphsCore/GSFont/elementDidChange:) — Reports that a font element changed.
- [`GSFont.disabledChangeKeys`](/Core/GlyphsCore/GSFont/disabledChangeKeys) — Change keys collected while interface updates are disabled.
- [`GSFont.disablesNiceNames`](/Core/GlyphsCore/GSFont/disablesNiceNames) — Whether automatic glyph name substitution is disabled.

### Interface Updates

- [`GSFont disableUpdateInterface`](/Core/GlyphsCore/GSFont/disableUpdateInterface) — Defers interface updates and change notifications.
- [`GSFont stopUpdateInterface`](/Core/GlyphsCore/GSFont/stopUpdateInterface) — Suppresses interface updates and change notifications.
- [`GSFont enableUpdateInterface`](/Core/GlyphsCore/GSFont/enableUpdateInterface) — Processes deferred interface updates and resumes normal update behavior.
- [`GSFont enableFutureUpdates`](/Core/GlyphsCore/GSFont/enableFutureUpdates) — Resumes normal update behavior without reporting changes made while updates were disabled.
- [`GSFont isUpdateInterfaceEnabled`](/Core/GlyphsCore/GSFont/isUpdateInterfaceEnabled) — Returns whether interface updates and change notifications are enabled.

### Glyph Locking

- [`GSFont lockReadGlyphs`](/Core/GlyphsCore/GSFont/lockReadGlyphs) — Acquires shared read access to the glyph collection.
- [`GSFont unlockReadGlyphs`](/Core/GlyphsCore/GSFont/unlockReadGlyphs) — Releases shared read access to the glyph collection.
- [`GSFont lockWriteGlyphs`](/Core/GlyphsCore/GSFont/lockWriteGlyphs) — Acquires exclusive write access to the glyph collection.
- [`GSFont unlockWriteGlyphs`](/Core/GlyphsCore/GSFont/unlockWriteGlyphs) — Releases exclusive write access to the glyph collection.

### Dependencies

- [`GSFont.dependencies`](/Core/GlyphsCore/GSFont/dependencies) — External dependencies required by the font.
- [`GSFont addDependency:displayName:`](/Core/GlyphsCore/GSFont/addDependency:displayName:) — Adds or replaces an external dependency.
- [`GSFont removeDependency:`](/Core/GlyphsCore/GSFont/removeDependency:) — Removes an external dependency.

### File Format

- [`GSFont.formatVersion`](/Core/GlyphsCore/GSFont/formatVersion) — The Glyphs file format version used to read and write the font.
- [`GSFont.storedFileType`](/Core/GlyphsCore/GSFont/storedFileType) — The package type recorded in serialized font data.
- [`GSFont.appVersion`](/Core/GlyphsCore/GSFont/appVersion) — The Glyphs app version that last wrote the font.
- [`GSFont filterLegacyDefaultProperties:filterKeys:format:`](/Core/GlyphsCore/GSFont/filterLegacyDefaultProperties:filterKeys:format:) — Filters default-language properties that cannot be represented in legacy formats.
- [`GSFont legacyInfoKeys`](/Core/GlyphsCore/GSFont/legacyInfoKeys) — Font info property names used by legacy file formats.

### Importing Font Data

- [`GSFont readSettingDict:`](/Core/GlyphsCore/GSFont/readSettingDict:) — Reads editor and file settings from a Glyphs property-list representation.
- [`GSFont setReadBuffer:forKey:`](/Core/GlyphsCore/GSFont/setReadBuffer:forKey:) — Stores temporary serialized data for post-read processing.
- [`GSFont postRead:`](/Core/GlyphsCore/GSFont/postRead:) — Completes the font after reading serialized data.
- [`GSFont postProcess`](/Core/GlyphsCore/GSFont/postProcess) — Completes editor-facing state after reading serialized data.
- [`GSFont importAFM:fontMaster:verticalMetrics:metrics:kerning:error:`](/Core/GlyphsCore/GSFont/importAFM:fontMaster:verticalMetrics:metrics:kerning:error:) — Imports metrics and kerning from Adobe Font Metrics data.

### Saving

- [`GSFont saveToURL:type:error:`](/Core/GlyphsCore/GSFont/saveToURL:type:error:) — Saves the font to a file or package.
- [`GSFont saveToURL:type:format:context:error:`](/Core/GlyphsCore/GSFont/saveToURL:type:format:context:error:) — Saves the font to a file or package using an explicit format and save context.
- [`GSFont saveContextForURL:type:`](/Core/GlyphsCore/GSFont/saveContextForURL:type:) — Creates a save context for a destination and package type.
- [`GSFont propertyListValueFormat:error:`](/Core/GlyphsCore/GSFont/propertyListValueFormat:error:) — A property-list representation of the font.
- [`GSFont preWrite:`](/Core/GlyphsCore/GSFont/preWrite:) — Prepares the font before writing.
- [`GSFont writeSettingsDict:`](/Core/GlyphsCore/GSFont/writeSettingsDict:) — A property-list representation of editor and file settings.

### Copying and Scaling

- [`GSFont copyWithOptions:`](/Core/GlyphsCore/GSFont/copyWithOptions:) — Creates a copy of the font with selected glyph and layer data.
- [`GSFont scaleBy:`](/Core/GlyphsCore/GSFont/scaleBy:) — Scales the font by a factor.
- [GSFont Internal](/Core/GlyphsCore/GSFont-Internal)

### Instance Properties

- [`GSFont.compositorFont`](/Core/GlyphsCore/GSFont/compositorFont)
- [`GSFont.disablesAutomaticAlignment`](/Core/GlyphsCore/GSFont/disablesAutomaticAlignment) — Disables automatic component alignment.
- [`GSFont.ignoreCompatibilityWarning`](/Core/GlyphsCore/GSFont/ignoreCompatibilityWarning) — Skips compatibility warnings during interpolation and generation.
- [`GSFont.storedFormatVersion`](/Core/GlyphsCore/GSFont/storedFormatVersion) — The original file format version preserved while saving in another format.
- [`GSFont.tempProduction2NiceNames`](/Core/GlyphsCore/GSFont/tempProduction2NiceNames)
- [`GSFont.tempTTFont`](/Core/GlyphsCore/GSFont/tempTTFont) — The path to the temp font

### Instance Methods

- [`GSFont applyGlyphSetParameters:error:`](/Core/GlyphsCore/GSFont/applyGlyphSetParameters:error:) — Applies glyph-set export parameters from an instance to the receiver.
- [`GSFont baseGlyphForName:suffix:test:`](/Core/GlyphsCore/GSFont/baseGlyphForName:suffix:test:) — Finds the longest dot-separated base name of `name` that resolves to a glyph accepted by `test`. this is useful for finding glyph info for alternate of PUA glyphs.
- [`GSFont compileTempFontError:`](/Core/GlyphsCore/GSFont/compileTempFontError:) — Recalculates the temp font.
- [`GSFont defaultInit`](/Core/GlyphsCore/GSFont/defaultInit) — Applies the default settings used when creating or reading a font.
- [`GSFont extractRemoveParameters:exportGlyphsSet:keepGlyphsSet:reencodeGlyphsSet:removeGlyphsSet:error:`](/Core/GlyphsCore/GSFont/extractRemoveParameters:exportGlyphsSet:keepGlyphsSet:reencodeGlyphsSet:removeGlyphsSet:error:) — Collects glyph-set export parameters from an instance.
- [`GSFont generateInstance:error:`](/Core/GlyphsCore/GSFont/generateInstance:error:) — Generates a static font from an instance.
- [`GSFont generateVariable:error:`](/Core/GlyphsCore/GSFont/generateVariable:error:) — Generates a variable font source from an instance.
- [`GSFont initFast`](/Core/GlyphsCore/GSFont/initFast) — Creates a partially initialized font for reading serialized data.
- [`GSFont initWithGlyphsFileAtPath:error:`](/Core/GlyphsCore/GSFont/initWithGlyphsFileAtPath:error:) — Creates a font by reading its Glyphs file representation.
- [`GSFont interpolateFontMaster:scale:thin:error:`](/Core/GlyphsCore/GSFont/interpolateFontMaster:scale:thin:error:) — Interpolates a master for an instance.
- [`GSFont makeSaveGlyphInfo:`](/Core/GlyphsCore/GSFont/makeSaveGlyphInfo:)
- [`GSFont masterIDforHints:`](/Core/GlyphsCore/GSFont/masterIDforHints:) — Returns the master identifier used as source for hints.
- [`GSFont normalizedLocationsDefaultMaster:masterIds:glyph:error:`](/Core/GlyphsCore/GSFont/normalizedLocationsDefaultMaster:masterIds:glyph:error:) — Returns normalized design-space locations for selected masters and Intermediate layers.
- [`GSFont normalizedLocationsDefaultMaster:masters:error:`](/Core/GlyphsCore/GSFont/normalizedLocationsDefaultMaster:masters:error:) — Returns normalized design-space locations for masters.
- [`GSFont saveNameForGlyph:`](/Core/GlyphsCore/GSFont/saveNameForGlyph:)
- [`GSFont saveNameForName:`](/Core/GlyphsCore/GSFont/saveNameForName:)
- [`GSFont saveSuffixForGlyph:`](/Core/GlyphsCore/GSFont/saveSuffixForGlyph:)

### Type Methods

- [`GSFont fontWithGlyphs:`](/Core/GlyphsCore/GSFont/fontWithGlyphs:) — Creates a font containing glyphs with the given names for testing.

## Relationships

### Inherits From

- `NSObject`

### Conforms To

- [`GSContainerProtocol`](/Core/GlyphsCore/GSContainerProtocol)
- [`GSParametersAndPropertiesProtocol`](/Core/GlyphsCore/GSParametersAndPropertiesProtocol)
- [`GSUserDataProtocol`](/Core/GlyphsCore/GSUserDataProtocol)
- `NSCoding`
- `NSCopying`

## See Also

### Essentials

- [`GSGlyph`](/Core/GlyphsCore/GSGlyph) — A named glyph and its layer collection in a font.
- [`GSLayer`](/Core/GlyphsCore/GSLayer) — The drawing and editing representation of a glyph.
- [`GSAxis`](/Core/GlyphsCore/GSAxis) — `GSAxis` represents an axis in a `GSFont` object.
- [`GSFontMaster`](/Core/GlyphsCore/GSFontMaster)
- [`GSInstance`](/Core/GlyphsCore/GSInstance)

