# `GSFont.features`

*Instance Property*

Layout features used when compiling OpenType feature code.

## Declaration

```swift
var features: [GSFeature] { get set }
```

```objc
@property (nonatomic, strong) NSArray<GSFeature *> * features;
```

[See also `features` in the Python API](https://docu.glyphsapp.com/#GSFont.features)

```python
pyobjc_instanceMethods.features() -> list[GSFeature]
pyobjc_instanceMethods.setFeatures_(features: list[GSFeature])
```

## Discussion

The order of the features is significant for feature generation and export.

## See Also

### Layout Features

- [`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.

