Skip to main content

Writable OpenType alternates in the Figma Plugin API

  • March 9, 2026
  • 0 replies
  • 6 views

andresalgado

Summary

Figma’s text UI supports OpenType alternates for editable text through its typography controls. However, this capability is not exposed in the Plugin API.

The Plugin API currently appears to expose only read access through openTypeFeatures and getRangeOpenTypeFeatures.

There does not appear to be a way for plugins to apply OpenType features or alternates to a text range.

Because of this limitation, plugins cannot implement typography workflows that apply alternate glyphs while keeping text editable.

 

Key Distinctions

It is important to note that this request focuses specifically on Discrete OpenType Features (e.g., salt, ss01, swsh, onum) rather than Font Variations (Variable Font axes like Weight or Slant). While Figma already provides some control over variable axes, the ability to toggle specific glyph substitutions via API is missing.

 

Example

Imagine the word: babel

Suppose the active font provides several alternate forms for the letter “b”.

A user may want to select only the first “b” and apply an alternate glyph to that character.

However, enabling an OpenType feature may trigger contextual substitutions that also affect neighboring letters. A plugin should be able to apply an alternate only to the selected character or range, without affecting surrounding characters or other occurrences of the same word.

 

Requested API capabilities

Writable OpenType features for text ranges

Example:

setRangeOpenTypeFeatures(start, end, features)

Ability to inspect available OpenType features or alternates for the current font or text range

Ability to apply a specific alternate variant to a selected character or range

 

Use case

This would allow typography plugins where a user can simply select a character and choose an alternate from a small popup, without opening the right sidebar or navigating the full text panel.

Such workflows would make exploring font alternates significantly faster and more convenient directly on canvas.