IP Library Granted Patent US 12687958
Granted Patent B2
US 12687958 · App. 18/598,418 · Granted Jul 21, 2026

System and method for implementing design system to provide preview of constraint conflicts

Inventors: Marcin Wichary (San Francisco, CA); Nikolas Klein (San Francisco, CA)
Assignee: Figma, Inc.
G06F3/04845G06F3/04842H04L67/14
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 12687958
App. No.
18/598,418
Granted
Jul 21, 2026
Kind
B2
Abstract

A computing system that can operate to implement an interactive graphic design system that enables users to preview and resolve input actions that cause conflict with predefined constraints.

Claims (30)

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:

responsive to implementing one or more input actions to modify a design under edit on a canvas of the user device, generate, in accordance with a first input action from a first user at a first user device, a constraint associated with a first object of the design under edit;

wherein for at least a second user device that renders the design under edit concurrently with the first user device, the set of instructions include instructions that, when executed by the second user device, cause the second user device to determine the one or more input actions to perform by:

responsive to user input received from a second user at the second user device, determining, before the second user completes a second input action with respect to a second object of the design under edit, that a completion of the second input action would result in the constraint associated with the first object and generated in accordance with the first input action from the first user being violated, an outcome of completion of the second input action being predicted based on historical activity associated with the second user with respect to the design under edit and one or more similar designs under edit, the outcome of completion of the second input action being based on a predicted type of input action, a predicted object that is the subject of the second input action, or a set of attributes for the predicted object; and

rendering, before the second user completes a second input action with respect to a second object of the design under edit, at least one outcome for the one or more input actions that avoids violating the constraint.

2 . The network computer system of claim 1 wherein the rendering is in accordance with a determination that the one or more input actions, when implemented on the second object, causes the first object to be in violation of the constraint.

3 . The network computer system of claim 1 wherein the rendering further depicts an alternative outcome having at least one of the first and second objects that would otherwise have conflicted with the constraint being provided modified attribute values that avoid a conflict with the constraint.

4 . The network computer system of claim 3 wherein at least one of the first and second users specify the modified attribute values that avoid the conflict with the constraint.

5 . The network computer system of claim 4 wherein the modified attribute values are in accordance with a resizing of the second object such that it constitutes a parent of the first object.

6 . The network computer system of claim 1 wherein responsive to the rendering, the second user is enabled to select against completing the second input action with respect to the second object of the design under edit.

7 . The network computer system of claim 1 wherein the set of instructions include instructions for resolving the at least one outcome for the first input action based on enabling the user to provide input to override the constraint.

8 . The network computer system of claim 7 wherein for at least the first user device, the set of instructions include instructions that, when executed by the first user device, cause the first user device to implement the one or more user actions by implementing a first user action to modify the design under edit without regard for the constraint.

9 . The network computer system of claim 1 wherein the at least one outcome comprises multiple outcomes, and the set of instructions enable the user to select any one of the multiple outcomes.

10 . The network computer system of claim 1 wherein the rendering visually indicates that the second input action, if implemented, causes the second object to conflict with the constraint.

11 . A non-transitory computer-readable medium that stores a set of instructions, including instructions that, when executed by one or more processors of a computing device, operate to communicate the set of instructions to a plurality of user devices, the set of instructions further including instructions that when executed by each user device of the plurality of user devices, cause the computing device to perform operations to:

responsive to implementing one or more input actions to modify a design under edit on a canvas of the user device, generate, in accordance with a first input action from a first user at a first user device, a constraint associated with a first object of the design under edit;

wherein for at least a second user device that renders the design under edit concurrently with the first user device, the set of instructions include instructions that, when executed by the second user device, cause the second user device to determine the one or more input actions to perform by:

responsive to user input received from a second user at the second user device, determining, before the second user completes a second input action with respect to a second object of the design under edit, that a completion of the second input action would result in the constraint associated with the first object and generated in accordance with the first input action from the first user being violated, an outcome of completion of the second input action being predicted based on historical activity associated with the second user with respect to the design under edit and one or more similar designs under edit, the outcome of completion of the second input action being based on a predicted type of input action, a predicted object that is the subject of the second input action, or a set of attributes for the predicted object; and

rendering, before the second user completes a second input action with respect to a second object of the design under edit, at least one outcome for the one or more input actions that avoids violating the constraint.

12 . The non-transitory computer-readable medium of claim 11 wherein the rendering is in accordance with a determination that the one or more input actions, when implemented on the second object, causes the first object to be in violation of the constraint.

13 . The non-transitory computer-readable medium of claim 11 wherein the rendering further depicts an alternative outcome having at least one of the first and second objects that would otherwise have conflicted with the constraint being provided modified attribute values that avoid a conflict with the constraint.

14 . The non-transitory computer-readable medium of claim 13 wherein the one or more processors enable at least one of the first and second users to specify the modified attribute values that avoid the conflict with the constraint.

15 . The non-transitory computer-readable medium of claim 14 wherein the modified attribute values are in accordance with a resizing of the second object such that it constitutes a parent of the first object.

16 . The non-transitory computer-readable medium of claim 11 wherein responsive to the rendering, the one or more processors enable the second user to select against completing the second input action with respect to the second object of the design under edit.

17 . The non-transitory computer-readable medium of claim 11 wherein the set of instructions include instructions for resolving the at least one outcome for the first input action based on the one or more processors enabling the user to provide input to override the constraint.

18 . The non-transitory computer-readable medium of claim 17 wherein for at least the first user device, the set of instructions include instructions that, when executed by one or more processors of the first user device, cause the first user device to implement the one or more user actions by implementing a first user action to modify the design under edit without regard for the constraint.

19 . The non-transitory computer-readable medium of claim 11 wherein the at least one outcome comprises multiple outcomes, and the set of instructions enable the user to select any one of the multiple outcomes.

20 . The non-transitory computer-readable medium of claim 11 wherein the rendering visually indicates that the second input action, if implemented, causes the second object to conflict with the constraint.