IP Library › Granted Patent US 12,327,095
Granted Patent B2
US 12,327,095 · App. 18/136,904 · Granted Jun 10, 2025

Systems and methods of decomposing user experience components into functioning subcomponents

Inventors: Brian Truong (San Francisco, CA); Billy Ma (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F8/38G06F8/20G06F8/36
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,327,095
App. No.
18/136,904
Filed
Apr 20, 2023
Granted
Jun 10, 2025
Kind
B2
Examiner
KHATRI, ANIL
Art Unit
2197
USPC
717/104
Abstract

Systems and methods are provided for parsing, at a server, a design file including code for a user interface, where the code is readable by the server into a tree representation having nodes, the nodes represent design elements of the user interface and includes one or more design properties, a unique identifier, and references to child elements. The server traverses the tree representation and comparing the design elements of the tree representation to a set of factors to determine when the design elements and meet a criteria to be a subcomponent for one or more components of the code of the design file. The server adds the design elements to a list of subcomponent candidates that meet at least one of the set of factors to be a subcomponent. The server generates a tree structure for the one or more components using the list of subcomponent candidates.

Claims (45)

1. A method comprising:

parsing, at a server, a design file including code for a user interface, wherein the code is readable by the server into a tree representation having nodes, wherein the nodes represent design elements of the user interface and includes one or more design properties, a unique identifier, and references to child elements of the design elements;

traversing, at the server, the tree representation and comparing the design elements of the tree representation to a set of factors to determine when the design elements meet a criteria to be a subcomponent for one or more components of the code of the design file;

adding, at the server, the design elements to a list of subcomponent candidates that meet at least one of the set of factors to be a subcomponent, and removing duplicate subcomponents from the list;

generating, at the server, a tree structure for the one or more components using the list of subcomponent candidates; and

naming, at the server, the one or more components of the tree structure with unique names for reusability.

2. The method of claim 1 , wherein the one or more design properties include at least one selected from the group consisting of: size of the design elements, position of the design elements, type of the design elements, color of the design elements, and interactions with the design elements.

3. The method of claim 1 , further comprising:

determining, at the server, whether the subcomponents in the list of subcomponent candidates include one or more of the child elements; and

adding, at the server, the child elements that meet at least one of the set of factors to be a subcomponent to the list of subcomponent candidates.

4. The method of claim 3 , further comprising:

determining, at the server, whether the number of child elements is equal to or greater than a predetermined subtree size; and

adding, at the server, the child elements to the list of subcomponent candidates when the number of child elements is greater than or equal to the predetermined subtree size and the child elements meet at least one of the set of factors to be a subcomponent.

5. The method of claim 1 , wherein the removing duplicate subcomponents from the list comprises:

determining, at the server, whether the list of candidate subcomponents includes duplicates; and

removing, at the server, the determined duplicate subcomponents from the list of candidate subcomponents.

6. The method of claim 1 , wherein the set of factors comprises at least one selected from the group consisting of: visualization of the design elements, functional operation of the design elements, repetition of the design elements, and complexity of the design elements.

7. The method of claim 5 , wherein the visualization factor includes at least one selected from the group consisting of: accessibility of the design elements, animation of the design elements, transitions of the design elements, spatial relationship of the design elements, patterns of the design elements, variation of state of the design elements, and conditional rendering of the design elements.

8. The method of claim 5 , wherein the functional factor includes at least one selected from the group consisting of: user interactive elements of the design elements, scalable content of the design elements, data containers of the design elements, and a performance value of the design elements.

9. The method of claim 1 , further comprising:

determining, at the server, whether the design file includes a plurality of frames that are grouped together;

determining, at the server, whether the determined plurality of frames that are grouped together are reduceable to subcomponents; and

adding, at the server, the design elements of the plurality of frames to the list of subcomponent candidates that meet at least one of the set of factors to be a subcomponent.

10. The method of claim 1 , further comprising:

weighting, at the server, one or more of the set of factors for determining when the design elements meet a criteria to be a subcomponent.

11. A system comprising:

a server having a processor communicatively coupled to a memory, wherein the server:

parses a design file including code for a user interface, wherein the code is readable by the server into a tree representation having nodes, wherein the nodes represent design elements of the user interface and includes one or more design properties, a unique identifier, and references to child elements of the design elements;

traverses the tree representation and comparing the design elements of the tree representation to a set of factors to determine when the design elements and meet a criteria to be a subcomponent for one or more components of the code of the design file;

adds the design elements to a list of subcomponent candidates that meet at least one of the set of factors to be a subcomponent, and remove duplicate subcomponents from the list;

generates a tree structure for the one or more components using the list of subcomponent candidates; and

names the one or more components of the tree structure with unique names for reusability.

12. The system of claim 11 , wherein the one or more design properties include at least one selected from the group consisting of: size of the design elements, position of the design elements, type of the design elements, color of the design elements, and interactions with the design elements.

13. The system of claim 11 , wherein the server determines whether the subcomponents in the list of subcomponent candidates include one or more of the child elements, and

wherein the server adds the child elements that meet at least one of the set of factors to be a subcomponent to the list of subcomponent candidates.

14. The system of claim 13 , wherein the server determines whether the number of child elements is equal to or greater than a predetermined subtree size, and

wherein the server adds the child elements to the list of subcomponent candidates when the number of child elements is greater than or equal to the predetermined subtree size and the child elements meet at least one of the set of factors to be a subcomponent.

15. The system of claim 11 , wherein the server removes duplicate subcomponents from the list by determining whether the list of candidate subcomponents includes duplicates, and removing the determined duplicate subcomponents from the list of candidate subcomponents.

16. The system of claim 11 , wherein the set of factors comprises at least one selected from the group consisting of: visualization of the design elements, functional operation of the design elements, repetition of the design elements, and complexity of the design elements.

17. The system of claim 16 , wherein the visualization factor includes at least one selected from the group consisting of: accessibility of the design elements, animation of the design elements, transitions of the design elements, spatial relationship of the design elements, patterns of the design elements, variation of state of the design elements, and conditional rendering of the design elements.

18. The system of claim 16 , wherein the functional factor includes at least one selected from the group consisting of: user interactive elements of the design elements, scalable content of the design elements, data containers of the design elements, and a performance value of the design elements.

19. The system of claim 11 , wherein the server determines whether the design file includes a plurality of frames that are grouped together,

wherein the server determines whether the determined plurality of frames that are grouped together are reduceable to subcomponents, and

wherein the server adds the design elements of the plurality of frames to the list of subcomponent candidates that meet at least one of the set of factors to be a subcomponent.

20. The system of claim 11 , wherein the server weights one or more of the set of factors for determining when the design elements meet a criteria to be a subcomponent.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2023
From: TRUONG, BRIAN; MA, BILLY
To: SALESFORCE, INC.
Reel/Frame 063384/0356 →
Continuity (1)
Related Publication 20240354072A1 · Oct 24, 2024
References Cited (52)
US 5737559A · Orton · 1998 [cited by examiner]
US 6496202B1 · Prinzing · 2002 [cited by examiner]
US 7017143B1 · Andrew · 2006 [cited by examiner]
US 7461382B2 · Hammerich · 2008 [cited by examiner]
US 7873946B2 · Lathrop · 2011 [cited by examiner]
US 8566792B2 · Chasman · 2013 [cited by applicant]
US 8671352B1 · Hsu · 2014 [cited by examiner]
US 8752011B2 · Dewan · 2014 [cited by examiner]
US 9098618B2 · Chasman · 2015 [cited by applicant]
US 9690808B2 · Roy-Faderman · 2017 [cited by applicant]
US 9946989B2 · Bhola · 2018 [cited by examiner]
US 9973550B2 · Haskins · 2018 [cited by applicant]
US 10423907B2 · Wang · 2019 [cited by applicant]
US 10489126B2 · Kumar · 2019 [cited by examiner]
US 10860296B2 · Ma · 2020 [cited by applicant]
US 11030082B1 · Ma · 2021 [cited by applicant]
US 11086764B2 · Ma · 2021 [cited by applicant]
US 11194786B2 · Beveridge · 2021 [cited by examiner]
US 11237889B1 · Ma · 2022 [cited by applicant]
US 11429577B2 · Ma · 2022 [cited by applicant]
US 11436005B2 · Ma · 2022 [cited by applicant]
US 11494286B2 · Ma · 2022 [cited by applicant]
US 11537503B2 · Chen · 2022 [cited by applicant]
US 11573880B2 · Ma · 2023 [cited by applicant]
US 12147388B1 · Sharma · 2024 [cited by examiner]
US 12159335B2 · Harvill · 2024 [cited by examiner]
US 12248455B1 · Cwalina · 2025 [cited by examiner]
US 20110276945A1 · Chasman · 2011 [cited by applicant]
US 20120143837A1 · Roy-Faderman · 2012 [cited by applicant]
US 20130167122A1 · Chasman · 2013 [cited by applicant]
US 20150074558A1 · Haskins · 2015 [cited by applicant]
US 20150112745A1 · Wang · 2015 [cited by applicant]
US 20160112572A1 · Ma · 2016 [cited by applicant]
US 20170199852A1 · Sasikumar · 2017 [cited by examiner]
US 20200082001A1 · Chen · 2020 [cited by applicant]
US 20200249915A1 · Ma · 2020 [cited by applicant]
US 20200348925A1 · Ma · 2020 [cited by applicant]
US 20210133083A1 · Ma · 2021 [cited by applicant]
US 20210149953A1 · Garg · 2021 [cited by applicant]
US 20210232480A1 · Ma · 2021 [cited by applicant]
US 20210232487A1 · Ma · 2021 [cited by applicant]
US 20210232552A1 · Ma · 2021 [cited by applicant]
US 20210240597A1 · Chen · 2021 [cited by applicant]
US 20210240599A1 · Ma · 2021 [cited by applicant]
US 20220050732A1 · Ma · 2022 [cited by applicant]
US 20230108375A1 · Ma · 2023 [cited by applicant]
Markelov et al, “Repository of User Interface Controls in area of Electronic Design Automation Software for Usability Improvement”, IEEE, pp. 314-315 (Year: 2011). [cited by examiner]
Nasiri ert al, “UXUP—User eXperience Centric Unified Process”, IEEE, pp. 1-9 (Year: 2018). [cited by examiner]
Nguyen et al, “Design Patterns for Parsing”, ACM, pp. 1-5 (Year: 2005). [cited by examiner]
Zhang et al, “Interval Parsing Grammars for File Format Parsing”, ACM, pp. 1-23 (Year: 2023). [cited by examiner]
Lutsky', “Using a Document Parser to Automate Software Testing”, ACM, pp. 1-5 (Year: 1994). [cited by examiner]
Sakka et al, “TreeFuser: A Framework for Analyzing and Fusing General Recursive Tree Traversals”, ACM, pp. 1-30 (Year: 2017). [cited by examiner]