Skip to main content
qurle
New Participant
April 24, 2024
Solved

Set bound variable for Typography

  • April 24, 2024
  • 12 replies
  • 678 views

Hi 👋 Using variables for setting fonts are cool and helps our design system a lot.
But is there any way to set bound variables for text properties via Plugin API?

It’s complex read-only property and simple setBoundVariable() does not work. We don’t have known methods like setBoundVariableForFont().

Can we wait for Plugin API to support typography variables any time soon?

List of properties I can’t manage to set:
fontFamily, letterSpacing, fontSize, paragraphSpacing, paragraphIndent, fontWeight, lineHeight and unexpectedly stroke for sections 😀

This topic has been closed for replies.
Best answer by James_Yang

We have a guide for typography variables in the plugin API here: Working with Variables | Plugin API

12 replies

Gleb
Power Member
April 24, 2024

API for typography and gradients variables is still in development.

Regarding stroke for sections, I think this might be considered a bug.

qurle
qurleAuthor
New Participant
April 24, 2024

Thanks, Bleb
Hope to see it soon!

James_Yang
Figmate
Figmate
April 24, 2024

We have a guide for typography variables in the plugin API here: Working with Variables | Plugin API

qurle
qurleAuthor
New Participant
April 25, 2024

Great news, thank you!
Didn’t see that few days ago. Glad it exists.

elv-heath
June 27, 2024

Why isn’t there a bindable option for fontSize?

James_Yang
Figmate
Figmate
June 29, 2024
elv-heath
June 30, 2024

I’m trying to reference the variable id in a function using boundVariables.fontSize.id, but it’s returning undefined. Other id references like fills[0].boundVariables.color.id and boundVariables.strokeWeight.id work fine. Any thoughts?

James_Yang
Figmate
Figmate
June 30, 2024

boundVariables.fontSize.id doesn’t work because for VariableBindableTextField keys in the boundVariables object, because the values are arrays of aliases instead of just a single alias.

The reason is that unlike normal bindable fields like strokeWeight, you can bind different variables to substrings of text. So you need to do boundVariables.fontSize[0].id (after checking that the array is non-empty).

elv-heath
June 30, 2024

That worked! Thanks for the help.

Michal_Kovacik1
New Participant
November 27, 2024

@James_Yang Could you please enlighten us about how to manage textRangeFills ? Thank you in advance.