DEV Community

Cover image for Using Figma Variants with react-figma
Ilya Lesik for  brainhub

Posted on

9 2

Using Figma Variants with react-figma

TL;DR Give me a code!

Variants is an amazing new feature of Figma, which lets you combine variations of the same component β€” simplifying the asset panel and mapping components more closely to code.

Figma Variants, source: figma.com

We were waiting for their launch since the announcement and started the implementation of Variants support in react-figma right after the Figma API Version 1, Update 18 release. Figma API got several new APIs:

ComponentSet component

We added a new component for Figma Variants support: the ComponentSet. It’s accepts a set of Component nodes as the children prop. We created an example with a button that has three variants: primary, dangerous, and secondary:

<ComponentSet name="Button">
    <Component name="variant=Primary">
        <PrimaryButton text="Primary" />
    </Component>
    <Component name="variant=Dangerous">
        <DangerousButton text="Dangerous" />
    </Component>
    <Component name="variant=Secondary">
        <SecondaryButton text="Secondary" />
    </Component>
</ComponentSet>
Enter fullscreen mode Exit fullscreen mode

(see complete code here)

You can try the result of the rendering here or watch a demo gif:

Demo Gif

Conclusion

Variants are a really useful feature, especially for design systems creation. So, enjoy it with react-figma too!

Happy coding! πŸ™Œ

Thanks

Links

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

πŸ‘‹ Kindness is contagious

If you found this article helpful, please give a ❀️ or share a friendly comment!

Got it