IP Library Granted Patent US 12,524,213
Granted Patent B2
US 12,524,213 · App. 17/969,647 · Granted Jan 13, 2026

Code block element for integrated graphic design system

Inventors: Emil Sjölander (San Francisco, CA); Delong Fu (San Francisco, CA); Michael Feldstein (San Francisco, CA); Sawyer Hood (San Francisco, CA); Naomi Jung (San Francisco, CA)
Assignee: Figma, Inc.
G06F8/42G06T11/60
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,524,213
App. No.
17/969,647
Granted
Jan 13, 2026
Kind
B2
Abstract

A computing system or application that enables generation and use of code block elements. A code block element refers to a graphic element that is rendered on a canvas to include content in the form of program code. In examples, the text content of the code block element can include syntax and other formatting that is in accordance with a selected programming language.

Claims (51)

1 . A network computer system comprising:

one or more processors;

a memory to store a set of instructions;

wherein the one or more processors access the instructions from the memory to perform operations that include:

providing a graphic design environment, the graphic design environment including a canvas on which one or more users create and/or edit graphic elements of multiple types;

wherein the multiple types of graphic elements include a code block element type, the code block element type being associated with multiple types of formatting logic, each of the multiple types of formatting logic being selectable in accordance with a menu of options listing different programming languages, the menu of options being provided with the code block element type to implement a corresponding format that is based on a set of syntax rules for a corresponding programming language of the different programming languages;

responsive to user input, rendering a code block element on the canvas, the code block element being rendered to receive text input;

responsive to receiving text input with the code block element, automatically implementing a first selected formatting logic of the multiple types to render the text input in a first corresponding format for a first programming language of the different programming languages;

responsive to selection of a second programming language from the menu of options listing different programming languages, automatically reformatting the text input into a second corresponding format in accordance with the second programming language; and

scanning the text input to determine one or more programmatic actions to be executed on the canvas; and

executing the one or more programmatic actions, wherein, upon execution, at least one of the programmatic actions modifies one or more visual characteristics of the code block element and at least one other graphic element on the canvas.

2 . The network computer system of claim 1 , wherein the operations include automatically error correcting the text input in accordance with one or more syntax rules for the corresponding programming language of the selected formatting logic.

3 . The network computer system of claim 2 , wherein the operations includes compiling the text input as a code sequence of the corresponding programming language for the selected formatting logic.

4 . The network computer system of claim 1 , wherein scanning the text input includes:

identifying a call operation and a plugin identifier from the scanned text; and

wherein the one or more programmatic actions include performing the call operation using the plugin identifier.

5 . The network computer system of claim 4 , wherein scanning the text input includes identifying one or more input parameters in the scanned text; and

wherein the one or more programmatic actions include performing the call operation using the plugin identifier and the one or more determined input parameters.

6 . The network computer system of claim 1 , wherein more programmatic actions include altering one or more properties of the code block.

7 . The network computer system of claim 1 , wherein the operations further comprise:

updating a nodal representation of a design created on the canvas using logic specified in the scanned text.

8 . The network system of claim 1 , wherein the code block element includes a container including a first set of properties, and wherein the operations include:

altering one or more properties of the first set based on user input.

9 . The network system of claim 1 , wherein the operations include:

rendering multiple code block elements on the canvas, the multiple code block elements being connected by a first connector; and wherein the operations further comprise enabling the each of the code block elements to be manipulated while connected by the first connector.

10 . A non-transitory computer-readable medium that stores instructions, which when executed by one or more processors of a computer system, cause the computer system to perform operations comprising:

providing a graphic design environment, the graphic design environment including a canvas on which one or more users create and/or edit graphic elements of multiple types;

wherein the multiple types of graphic elements include a code block element type, the code block element type being associated with multiple types of formatting logic, each of the multiple types of formatting logic being selectable in accordance with a menu of options listing different programming languages, the menu of options being provided with the code block element type to implement a corresponding format that is based on a set of syntax rules for a corresponding programming language of the different programming languages;

responsive to user input, rendering a code block element on the canvas, the code block element being rendered to receive text input;

responsive to receiving text input with the code block element, automatically implementing a first selected formatting logic of the multiple types to render the text input in the corresponding format for a first programming language of the different programming languages;

responsive to selection of a second programming language from the menu of options listing different programming languages, automatically reformatting the text input into a second corresponding format in accordance with the second programming language; and

scanning the text input to determine one or more programmatic actions to be executed; and

executing the one or more programmatic actions, wherein, upon execution, at least one of the programmatic actions modifies one or more visual characteristics of the code block element and at least one other graphic element on the canvas.

11 . The non-transitory computer-readable medium of claim 9 , wherein scanning the text input includes:

identifying a call operation and a plugin identifier from the scanned text; and

wherein the one or more programmatic actions include performing the call operation using the plugin identifier.

12 . The non-transitory computer-readable medium of claim 11 , wherein scanning the text input includes identifying one or more input parameters in the scanned text; and

wherein the one or more programmatic actions include performing the call operation using the plugin identifier and the one or more determined input parameters.

13 . The non-transitory computer-readable medium of claim 10 , wherein more programmatic actions include altering one or more properties of the code block.

14 . The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise:

updating a nodal representation of a design created on the canvas using logic specified in the scanned text.

15 . The non-transitory computer-readable medium of claim 10 , wherein the code block element includes a container including a first set of properties, and wherein the operations include:

altering one or more properties of the set based on user input.

16 . A computer-implemented method comprising:

providing a graphic design environment, the graphic design environment including a canvas on which one or more users create and/or edit graphic elements of multiple types;

wherein the multiple types of graphic elements include a code block element type, the code block element type being associated with multiple types of formatting logic, each of the multiple types of formatting logic being selectable in accordance with a menu of options listing different programming languages, the menu of options being provided with the code block element type to implement a corresponding format that is based on a set of syntax rules for a corresponding programming language of the different programming languages;

responsive to user input, rendering a code block element on the canvas, the code block element being rendered to receive text input;

responsive to receiving text input with the code block element, automatically implementing a first selected formatting logic of the multiple types to render the text input in the corresponding format for a first programming language of the different programming languages;

responsive to selection of a second programming language from the menu of options listing different programming languages, automatically reformatting the text input into a second corresponding format in accordance with the second programming language; and

scanning the text input to determine one or more programmatic actions to be executed; and

executing the one or more programmatic actions, wherein, upon execution, at least one of the programmatic actions modifies one or more visual characteristics of the code block element and at least one other graphic element on the canvas.

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 Feb 23, 2023
From: SJÖLANDER, EMIL; FU, DELONG; FELDSTEIN, MICHAEL; HOOD, SAWYER; JUNG, NAOMI
To: FIGMA, INC.
Reel/Frame 062784/0699 →
Continuity (2)
Provisional Application 63257476 · Oct 19, 2021
Related Publication 20230119466A1 · Apr 20, 2023
References Cited (90)
US 5339389A · Bates · 1994 [cited by applicant]
US 6088709A · Watanabe · 2000 [cited by applicant]
US 7486294B2 · Beda · 2009 [cited by examiner]
US 7770122B1 · Shaik · 2010 [cited by applicant]
US 8533580B1 · Xu · 2013 [cited by applicant]
US 9424545B1 · Lee · 2016 [cited by applicant]
US 9430229B1 · Zijst · 2016 [cited by applicant]
US 9477649B1 · Davidson · 2016 [cited by applicant]
US 9594608B2 · Simsek · 2017 [cited by examiner]
US 10129188B2 · Liu · 2018 [cited by applicant]
US 10606576B1 · Tung · 2020 [cited by applicant]
US 11010542B2 · Nelson · 2021 [cited by applicant]
US 11074107B1 · Nandakumar · 2021 [cited by examiner]
US 20040054627A1 · Rutledge · 2004 [cited by applicant]
US 20070118794A1 · Hollander · 2007 [cited by applicant]
US 20100037149A1 · Heath · 2010 [cited by applicant]
US 20100192107A1 · Takahashi · 2010 [cited by applicant]
US 20110047532A1 · Wang · 2011 [cited by applicant]
US 20110268262A1 · Jones · 2011 [cited by applicant]
US 20130013089A1 · Kawakami · 2013 [cited by applicant]
US 20130014023A1 · Lee · 2013 [cited by applicant]
US 20130031208A1 · Linton · 2013 [cited by applicant]
US 20130081004A1 · Vargas · 2013 [cited by examiner]
US 20130097476A1 · Koroda · 2013 [cited by applicant]
US 20130111338A1 · Huo · 2013 [cited by applicant]
US 20130124967A1 · Hatfield · 2013 [cited by applicant]
US 20140108963A1 · Black · 2014 [cited by applicant]
US 20140258968A1 · Brown · 2014 [cited by applicant]
US 20140298153A1 · Tsujimoto · 2014 [cited by applicant]
US 20140310660A1 · Rosen · 2014 [cited by applicant]
US 20140344418A1 · Jones · 2014 [cited by applicant]
US 20150032366A1 · Man · 2015 [cited by applicant]
US 20150127753A1 · Tew · 2015 [cited by applicant]
US 20150302338A1 · Zaveri · 2015 [cited by applicant]
US 20160012350A1 · Narayanan · 2016 [cited by examiner]
US 20160110063A1 · Connolly · 2016 [cited by applicant]
US 20160232785A1 · Wang · 2016 [cited by applicant]
US 20160343156A1 · Yoshizawa · 2016 [cited by applicant]
US 20160358467A1 · Jeong · 2016 [cited by applicant]
US 20170052767A1 · Bennett · 2017 [cited by examiner]
US 20170109139A1 · Bitner · 2017 [cited by applicant]
US 20170192656A1 · Pedrick · 2017 [cited by applicant]
US 20170293544A1 · Katayama · 2017 [cited by applicant]
US 20170339370A1 · Inoue · 2017 [cited by applicant]
US 20180121039A1 · Bliss · 2018 [cited by applicant]
US 20180173701A1 · Kim · 2018 [cited by applicant]
US 20180174446A1 · Wang · 2018 [cited by applicant]
US 20180189033A1 · Narang · 2018 [cited by examiner]
US 20180285084A1 · Mimlitch, III · 2018 [cited by applicant]
US 20180315248A1 · Bastov · 2018 [cited by applicant]
US 20180337880A1 · Sokolov · 2018 [cited by applicant]
US 20180350144A1 · Rathod · 2018 [cited by applicant]
US 20190129927A1 · Okamoto · 2019 [cited by applicant]
US 20190179501A1 · Seeley · 2019 [cited by applicant]
US 20190236975A1 · Chong · 2019 [cited by examiner]
US 20190238602A1 · Lo · 2019 [cited by applicant]
US 20190294422A1 · Martel · 2019 [cited by applicant]
US 20190303880A1 · Hashimoto · 2019 [cited by applicant]
US 20190361580A1 · Dowling · 2019 [cited by applicant]
US 20200201831A1 · Shekhawat · 2020 [cited by applicant]
US 20200296147A1 · Eliason · 2020 [cited by applicant]
US 20210124561A1 · Pezaris · 2021 [cited by applicant]
US 20210208775A1 · Allington · 2021 [cited by applicant]
US 20220108276A1 · Stringham · 2022 [cited by applicant]
US 20220129118A1 · Hsu · 2022 [cited by applicant]
US 20220191594A1 · Devoy, III · 2022 [cited by applicant]
US 20220263675A1 · Cupala · 2022 [cited by applicant]
US 20220334704A1 · Lin · 2022 [cited by applicant]
US 20220334806A1 · Lin · 2022 [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]
WO WO2009132444A1 · 2009 [cited by applicant]
WO WO2019209391A1 · 2019 [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]
International Search Report and The Written Opinion of The International Searching Authority mailed Jul. 1, 2022, for related PCT/US2022/025626, filed Apr. 20, 2022, 17 pages. [cited by applicant]
Wallace Evan: “Multiplayer Editing in Figma”, figma.com/blog, Sep. 28, 2016 (Sep. 28, 2016), XP055930547, Retrieved from the Internet: URL: https://www.figma.com/blog/multiplayer-editing-in-figma/ [retrieved on Jun. 13,… [cited by applicant]
Anonymous: “Change cursor into custom text”, Dec. 24, 2018 (Dec. 24, 2018), XP055930588, Retrieved from the Internet: URL: https://stackoverflow.com/questions/53916492/change-cursor-into-custome-text [retrieved on Jun. … [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed Jul. 25, 2022, for related PCT/US2022/025840 filed Apr. 20, 2022, 17 pages. [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, Jan. 21, 2022. [cited by applicant]
Zack Qattan, “Collaborative Cursor Chat w/Croquet”, Nov. 30, 2020, youtube.com, https://www.youtube.com/watch?v=NiqTCROdlgw pp. 1-15 (Year: 2020). [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed Feb. 1, 2023, for related PCT/US2022/047191 filed Oct. 19, 2022, 16 pages. [cited by applicant]
International Search Report and The Written Opinion of The International Searching Authority mailed Mar. 1, 2023 for related PCT/US2022/050134 filed Nov. 16, 2022, 10 pages. [cited by applicant]
Philippe Charles et al.: “Accelerating the creation of customized, language-specific IDEs in Eclipse”, ACM Sigplan Notices, Association for Computing Machinery, US, vol. 44, No. 10, Oct. 25, 2009 (Oct. 25, 2009), pp. 19… [cited by applicant]
“AutoCAD Custom User Interface—Custom Ribbons, Creating Commands and Toolbars”, AIMCAD on YouTube, Mar. 19, 2018. [cited by applicant]
Office Action received for European Application No. 22809258.1 dated Aug. 26, 2025, 5 pages. [cited by applicant]