IP Library Granted Patent US 12,373,172
Granted Patent B2
US 12,373,172 · App. 18/216,948 · Granted Jul 29, 2025

Interactive graphic design system to enable creation and use of variant component sets for interactive objects

Inventors: Rasmus Andersson (San Francisco, CA); Sho Kuwamoto (San Francisco, CA); Nikolas Klein (San Francisco, CA); James Wong (San Francisco, CA); Ryan Kaplan (San Francisco, CA); Kelsey Whelan (San Francisco, CA); Matthew Huang (San Francisco, CA); Sawyer Hood (San Francisco, CA); Andrew Heine (San Francisco, CA); Jessica Liu (San Francisco, CA); Marcin Wichary (San Francisco, CA); Linda Zhang (San Francisco, CA); Josh Shi (San Francisco, CA); Golf Sinteppadon (San Francisco, CA); Naomi Jung (San Francisco, CA); Andrew Chan (San Francisco, CA); Daniel Furse (San Francisco, CA)
Assignee: Figma, Inc.
G06F8/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,373,172
App. No.
18/216,948
Granted
Jul 29, 2025
Kind
B2
Abstract

An interactive graphic design system design interface is described to enable design users to create a variant component that links multiple design elements as variants, where each variant represents a state or version of a run-time object, feature or user-interface.

Claims (36)

1. A network computer system comprising:

a memory sub-system to store a set of instructions; and

one or more processors that operate to communicate the set of instructions to a plurality of user devices, wherein the set of instructions include instructions that when executed by each user device of the plurality of user devices, causes the user device to perform operations that include:

defining, based on an input that identifies a selection of design elements rendered on a canvas provided in a design interface, a variant component, the variant component including a plurality of constituent variants, the plurality of constituent variants including a main component and a one or more instance components, the plurality of constituent variants sharing a state property value among multiple possible state property values associated with the variant component, wherein defining the variant component comprises:

determining that selected design elements share a common attribute that correlates to a respective state property of the variant component, and

based on the determining, associating the respective state property with the selected design elements, and prompting the user device to select a property value of the respective state property for one or more design elements of the selection;

providing a representation of the variant component that is manipulatable with design input to render the main component and the plurality of instance components on the canvas at a same time;

propagating design input received for the main component to each of the plurality of instance components rendered on the canvas at the same time in accordance with the selected property value of the respective state property for the one or more design elements of the selected design elements; and

integrating the variant component into an interactive runtime component wherein a state of the interactive runtime component is associated with one component associated with the variant component and transitions between different components associated with the variant component based on execution of a triggering event performed with respect to the interactive runtime component.

2. The network computer system of claim 1 , wherein providing the representation of the variant component includes:

rendering the variant component by rendering each variant of the variant component at one time on the canvas.

3. The network computer system of claim 2 , wherein the operations further comprise:

providing an interactive feature to enable selection of an additional design element to add as a new variant of the variant component while each variant of the variant component is rendered.

4. The network computer system of claim 1 , wherein the operations further comprise storing the variant component as a reusable item in a network library.

5. The network computer system of claim 1 , wherein defining the variant component includes: (i) associating the variant component with multiple state properties, each of the multiple state properties having a corresponding set of possible state property values; and (ii) assigning each combination of state property values of the set of property values to one variant of the variant component, such that each variant of the variant component is assigned to one combination of the set of state property values.

6. The network computer system of claim 5 , wherein associating the variant component with multiple state properties includes enabling a design user to specify an additional state property for a variant component.

7. The network computer system of claim 5 , further comprising enabling a design user to sort or filter the constituent variants of the variant component based on includes generating a property value selection feature for each of the multiple state properties on one or more tool panels.

8. The network computer system of claim 1 , wherein defining the variant component includes implementing a naming scheme in which each respective constituent variant of the variant component is associated with a respective name that identifies each state property that is associated with the respective variant component, and a state property value for each associated state property of the respective variant component.

9. The network computer system of claim 1 , wherein the operations further comprise: structuring the variant component as a layer type having multiple layers, wherein each variant of the variant component corresponds to one of the multiple layers.

10. A processor-implemented method, comprising:

defining, based on an input that identifies a selection of design elements rendered on a canvas provided in a design interface, a variant component, the variant component including a plurality of constituent variants, the plurality of constituent variants including a main component and a one or more instance components, the plurality of constituent variants sharing a state property value among multiple possible state property values associated with the variant component, wherein defining the variant component comprises:

determining that the selected design elements share a common attribute that correlates to a respective state property of the variant component, and

based on the determining, associating the respective state property with the selected design elements, and prompting a user device to select a property value of the respective state property for one or more design elements of the selected design elements;

providing a representation of the variant component that is manipulatable with design input to render the main component and the plurality of instance components on the canvas at a same time;

propagating design input received for the main component to each of the plurality of instance components rendered on the canvas at the same time in accordance with the selected property value of the respective state property for the one or more design elements of the selection; and

integrating the variant component into an interactive runtime component, wherein a state of the interactive runtime component is associated with one component associated with the variant component and transitions between different components associated with the variant component based on execution of a triggering event performed with respect to the interactive runtime component.

11. The method of claim 10 , wherein providing the representation of the variant component includes:

rendering the variant component by rendering each variant of the variant component at one time on the canvas.

12. The method of claim 11 , further comprising:

providing an interactive feature to enable selection of an additional design element to add as a new variant of the variant component while each variant of the variant component is rendered.

13. The method of claim 10 , further comprising storing the variant component as a reusable item in a network library.

14. The method of claim 10 , wherein defining the variant component includes: (i) associating the variant component with multiple state properties, each of the multiple state properties having a corresponding set of possible state property values; and (ii) assigning each combination of state property values of the set of property values to one variant of the variant component, such that each variant of the variant component is assigned to one combination of the set of state property values.

15. The method of claim 14 , wherein associating the variant component with multiple state properties includes enabling a design user to specify an additional state property for a variant component.

16. The method of claim 14 , further comprising enabling a design user to sort or filter the constituent variants of the variant component based on generating a property value selection feature for each of the multiple state properties on one or more tool panels.

17. The method of claim 10 , wherein defining the variant component includes implementing a naming scheme in which each respective constituent variant of the variant component is associated with a respective name that identifies each state property that is associated with the respective variant component, and a state property value for each associated state property of the respective variant component.

18. The method of claim 10 , further comprising: structuring the variant component as a layer type having multiple layers, wherein each variant of the variant component corresponds to one of the multiple layers.

Assignments (2)
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 27, 2025
From: FIGMA, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071775/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2025
From: ANDERSSON, RASMUS; KUWAMOTO, SHO; KLEIN, NIKOLAS; WONG, JAMES; KAPLAN, RYAN; WHELAN, KELSEY; HUANG, MATTHEW; HOOD, SAWYER; HEINE, ANDREW; LIU, JESSICA; WICHARY, MARCIN; ZHANG, LINDA; SHI, JOSH; SINTEPPADON, GOLF; JUNG, NAOMI; CHAN, ANDREW; FURSE, DANIEL
To: FIGMA, INC.
Reel/Frame 071191/0496 →
Continuity (4)
Continuation 17477293 · Sep 16, 2021
Provisional Application 63079473 · Sep 16, 2020
Provisional Application 63153335 · Feb 24, 2021
Related Publication 20230418562A1 · Dec 28, 2023
References Cited (113)
US 6691298B1 · Russo · 2004 [cited by examiner]
US 7742903B2 · Ciolfi · 2010 [cited by examiner]
US 7752559B1 · Szpak · 2010 [cited by applicant]
US 7971194B1 · Gilboa · 2011 [cited by examiner]
US 8209657B1 · Sawyer · 2012 [cited by examiner]
US 8312416B2 · Freund · 2012 [cited by examiner]
US 8370757B2 · Tinari · 2013 [cited by applicant]
US 8612849B2 · Boreham · 2013 [cited by applicant]
US 8726228B2 · Ravindran · 2014 [cited by examiner]
US 8793706B2 · Villadsen · 2014 [cited by examiner]
US 9182948B1 · O'Riordan · 2015 [cited by examiner]
US 9256219B2 · Blevins · 2016 [cited by examiner]
US 9430229B1 · Zijst · 2016 [cited by applicant]
US 9772682B1 · Meenakshisundaram · 2017 [cited by applicant]
US 9785456B2 · Goetz · 2017 [cited by examiner]
US 9952837B1 · Maclay · 2018 [cited by examiner]
US 10114733B1 · Varghese · 2018 [cited by applicant]
US 10181059B1 · Brewton · 2019 [cited by examiner]
US 10268525B2 · Beckett · 2019 [cited by applicant]
US 10521197B1 · Ciolfi · 2019 [cited by examiner]
US 10997217B1 · Nielsen · 2021 [cited by applicant]
US 11308113B1 · Boggs · 2022 [cited by examiner]
US 11829689B1 · Kottamadal · 2023 [cited by examiner]
US 11853690B1 · Zhang · 2023 [cited by examiner]
US 20020032554A1 · Nakagawa · 2002 [cited by applicant]
US 20050094206A1 · Tonisson · 2005 [cited by applicant]
US 20070006136A1 · Hirschberg et al. · 2007 [cited by applicant]
US 20080036776A1 · Niles · 2008 [cited by applicant]
US 20080282188A1 · Hays · 2008 [cited by applicant]
US 20100017695A1 · Palmiere · 2010 [cited by applicant]
US 20120124492A1 · Taron · 2012 [cited by applicant]
US 20130086529A1 · Singh et al. · 2013 [cited by applicant]
US 20130120368A1 · Miller · 2013 [cited by applicant]
US 20130232403A1 · Abrahami · 2013 [cited by applicant]
US 20130239001A1 · Maloney et al. · 2013 [cited by applicant]
US 20140071133A1 · Chu · 2014 [cited by applicant]
US 20140310660A1 · Rosen · 2014 [cited by applicant]
US 20140351110A1 · Lidor · 2014 [cited by applicant]
US 20140356822A1 · Hoque · 2014 [cited by applicant]
US 20150092228A1 · Okabyashi · 2015 [cited by applicant]
US 20150105875A1 · Tran · 2015 [cited by applicant]
US 20150160838A1 · Shirabe · 2015 [cited by applicant]
US 20160048388A1 · Eksten · 2016 [cited by applicant]
US 20160246899A1 · Hirschtick · 2016 [cited by applicant]
US 20160274776A1 · Scheff · 2016 [cited by applicant]
US 20160371312A1 · Ben-Aharon et al. · 2016 [cited by applicant]
US 20170046317A1 · Geva · 2017 [cited by applicant]
US 20170199652A1 · Campbell · 2017 [cited by applicant]
US 20170337321A1 · Hoford · 2017 [cited by applicant]
US 20180173406A1 · Hill · 2018 [cited by applicant]
US 20180174346A1 · Fratarcangeli · 2018 [cited by applicant]
US 20180268608A1 · Schneider · 2018 [cited by applicant]
US 20180308276A1 · Cohen · 2018 [cited by applicant]
US 20190035149A1 · Chen · 2019 [cited by applicant]
US 20190114817A1 · Kerr · 2019 [cited by applicant]
US 20190325626A1 · Tao · 2019 [cited by applicant]
US 20190369822A1 · Tzeng · 2019 [cited by applicant]
US 20200233624A1 · Peng · 2020 [cited by applicant]
US 20210141515A1 · Wichary · 2021 [cited by applicant]
US 20210247967A1 · Wichary · 2021 [cited by applicant]
US 20220012071A1 · Kim · 2022 [cited by applicant]
US 20220083316A1 · Andersson · 2022 [cited by applicant]
US 20220101582A1 · Uzgin et al. · 2022 [cited by applicant]
US 20220129142A1 · Wichary · 2022 [cited by applicant]
US 20220156422A1 · Kuwamoto · 2022 [cited by applicant]
US 20220245618A1 · King et al. · 2022 [cited by applicant]
US 20230306667A1 · Hopkins · 2023 [cited by applicant]
US 20230386118A1 · Klein · 2023 [cited by applicant]
US 20230400971A1 · Tai · 2023 [cited by applicant]
US 20240012548A1 · Chui · 2024 [cited by applicant]
US 20240143869A1 · Klein · 2024 [cited by applicant]
EP 0576178 · 1993 [cited by applicant]
EP 2775397A2 · 2014 [cited by applicant]
EP 3293619 · 2018 [cited by applicant]
EP 3633472A1 · 2020 [cited by applicant]
EP 3719752 · 2020 [cited by applicant]
JP 200821221 · 2008 [cited by applicant]
WO WO2009132444A1 · 2009 [cited by applicant]
WO WO2021097141 · 2021 [cited by applicant]
WO WO2021159079 · 2021 [cited by applicant]
WO WO2022061027 · 2022 [cited by applicant]
WO WO2022109200 · 2022 [cited by applicant]
WO 2023219970 · 2023 [cited by applicant]
WO 2024091964 · 2024 [cited by applicant]
Kravchuk-Kirilyuk et al., “Persimmon: Nested Family Polymorphism with Extensible Variant Types”, ACM, pp. 1-27 (Year: 2024). [cited by examiner]
Åkerholm et al., “A Model for Reuse and Optimization of Embedded Software Components”, IEEE, pp. 567-572 (Year: 2007). [cited by examiner]
He et al., “Shader Components: Modular and High Performance Shader Development”, ACM, pp. 1-11 (Year: 2017). [cited by examiner]
Pinkney et al., “Reflowable Documents Composed from Pre-rendered Atomic Components”, ACM, pp. 1-4 (Year: 2011). [cited by examiner]
Larraga et al., “Component-based thinking in designing interactive multiobjective evolutionary methods”, ACM, pp. 1-10 (Year: 2023). [cited by examiner]
International Search Report and The Written Opinion of The International Searching Authority mailed Jan. 17, 2021, for related PCT/US2020/060300 filed Nov. 12, 2020, 13 pages. [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed May 21, 2021, for related PCT/US2021/017093 filed Feb. 8, 2021, 16 pages. [cited by applicant]
Tutorialspoint.com: “Microsoft Visio Themes and Styles”, Nov. 30, 2018, XP055801565, Retrieved from the Internet: URL: https://web.archive.org/web/20181130054605/https://www.tutorialspoint.com/microsoft_visio/microsoft_… [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed Dec. 22, 2021, for related PCT/US2021/050734 filed Sep. 16, 2021, 66 pages. [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed Feb. 23, 2022, for related PCT/US2021/059987 filed Nov. 18, 2021, 12 pages. [cited by applicant]
IBM: “IBM VisualAge for Java, Version 3.5—Visual Compisition”, 2000, pp. 1-253, XP055890198, Retrieved from the Internet: URL:http://www.inf.fu-berlin.de/inst/ag-db/software/VAJ_PDF/jvbpdf.pdf [retrieved onFeb. 10, 2022… [cited by applicant]
Paper by WeTransfer—Simple Sketch App, “Creativity at your fingertips” URL:https://web.archive.org/web/20220121205009/https://wetransfer.com/paper, 9 pages. [cited by applicant]
Jarzabek et al., “XVCL: XML-based Variant Configuration Language”, IEEE, pp. 1-2 (Year: 2003). [cited by applicant]
Kriouile et al., “Towards Flexible and Reusable SaaS for Multi-tenancy”, IEEE, pp. 1-7 (Year: 2014). [cited by applicant]
Bezier Animations, UI Elements to Flutter Widgerts (Part 1), by Kamalesh Basu, Published in TheBrand.app on Jan. 29, 2020. 25 pages. [cited by applicant]
International Search Report and Written Opinion mailed Aug. 12, 2024 in PCT/US2024/034867. [cited by applicant]
International Search Report and Written Opinion mailed Aug. 20, 2024 in PCT/US2024/034864. [cited by applicant]
International Search Report and Written Opinion mailed Sep. 4, 2024 in PCT/US2024/034855. [cited by applicant]
Prototyping Easing Curves, The Wayback Machine by Figma Help Center. Found at:https://web.archive.org/web/20240000000000*/Prototyping%20Easing%20Curves7 pages. [cited by applicant]
Written Opinion of the International Preliminary Examining Authority mailed Sep. 16, 2024, for related PCT/US2023/0076500, filed Oct. 10, 2022, 6 pages. [cited by applicant]
Written Opinion of The International Preliminary Examining Authority mailed Sep. 18, 2024, for related PCT/US2023/0077671, filed Oct. 24, 2023, 8 pages. [cited by applicant]
Bibliographic information for “Figma Tutorial: Build and present interactive prototypes”, https://www.youtube.com/watch?v=X5qiBwqptek, Feb. 5, 2024, 2 pages. [cited by applicant]
Bibliographic information for “Figma Tutorial: Prototyping”, https://www.youtube.com/watch?v=sAAa-CCOcg, Feb. 27, 2024, 2 pages. [cited by applicant]
International Preliminary Report on Patentability mailed Jul. 2, 2024, for related PCT/US2021/050734, filed Sep. 16, 2021, 8 pages. [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed Aug. 23, 2023, for related PCT/US2023 filed May 8, 2023, 11 pages. [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed Feb. 16, 2024, for related PCT/US2023/077671, filed May 2, 2024, 11 pages. [cited by applicant]
Paper by Figma—“Frames in Figma”, URL https://web.archive.org/web/20221004002738/ https://help.figma.com/hc/en-us/articles/360041539473-Frames-in-Figma , Oct. 10, 2022, 11 pages. [cited by applicant]
Paper by Figma—“Guide to Prototyping in Figma”, URL https://web.archive.org/web/2022102202/0956 https://help.figma.com/hc/en-us/articles/360040314193 “Flows and Starting Points” “Create Connections”, Oct. 22, 2022, 8 pa… [cited by applicant]
Written Opinion of The International Preliminary Examining Authority mailed Apr. 10, 2024, for related PCT/US2021/050734, filed Sep. 16, 2021, 7 pages. [cited by applicant]