Constraints-based layout system for efficient layout and control of user interface elements

US12147753B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12147753-B2
Application numberUS-202017129207-A
CountryUS
Kind codeB2
Filing dateDec 21, 2020
Priority dateMay 17, 2016
Publication dateNov 19, 2024
Grant dateNov 19, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Aspects of the subject technology relate to systems and methods for constraints-based layout and control of user interface (UI) elements. The system receives a first user input indicating an instruction to position a first UI element on a page of the layout application. The system receives a second user input indicating an instruction to position a second UI element on the page. The system receives a third user input indicating an instruction to create a connection from the second UI element to the first UI element. The system generates a layout constraint indicating a spatial relationship between the first UI element and the second UI element based on the connection. The system provides the layout constraint in a layout data file associated with the UI.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: determining, by a computing device, a plurality of connections involving at least a first user interface (UI) element, a second UI element, and a third UI element, wherein the plurality of connections include at least a first layout constraint and a second layout constraint, wherein the first layout constraint defines a spatial relationship between the first UI element and the second UI element, and wherein the second layout constraint defines a spatial relationship between the second UI element and the third UI element; determining, by the computing device, that the plurality of connections result in an error in positioning of the first UI element, the second UI element, or the third UI element; determining, by the computing device, a ratio of an amount of error to spread to the first layout constraint to an amount of error to spread to the second layout constraint; and adjusting, by the computing device, the first layout constraint and the second layout constraint to spread the error to the first layout constraint and the second layout constraint, wherein the error is spread according to the determined ratio. 2. The method of claim 1 , wherein determining the plurality of connections involving the first UI element, the second UI element, and the third UI element comprises: providing, on the computing device, a layout application for developing a UI, the layout application including a representation of a page that allows UI elements to be visually positioned relative to each other; and receiving, via the layout application, user input indicating the plurality of connections involving the first UI element, the second UI element, and the third UI element. 3. The method of claim 2 , further comprising after adjusting the first layout constraint and the second layout constraint, providing the first layout constraint and the second layout constraint in a layout data file associated with the UI. 4. The method of claim 1 , further comprising modifying one or more dimensions of the first UI element, the second UI element, or the third UI element to facilitate spread of the error to the first layout constraint and the second layout constraint. 5. The method of claim 1 , wherein determining the ratio is based on user input. 6. The method of claim 1 , wherein determining the ratio is based on user preferences stored in memory of the computing device. 7. The method of claim 1 , wherein determining the ratio comprises the computing device modifying a predetermined ratio value to a customized ratio value. 8. The method of claim 1 , further comprising determining coordinates for the first UI element, the second UI element, or the third UI element based on the ratio of the amount of error to spread to the first layout constraint to the amount of error to spread to the second layout constraint. 9. The method of claim 1 , further comprising generating a final layout of a UI based on the first adjusted layout constraint and the second adjusted layout constraint. 10. The method of claim 1 , wherein adjusting the first layout constraint and the second layout constraint to spread the error to the first layout constraint and the second layout constraint is performed using a linear equation solver. 11. The method of claim 10 , wherein the linear equation solver is applied responsive to a determination that more than one potential set of coordinates can be calculated for at least one of the first UI element, the second UI element, or the third UI element. 12. The method of claim 10 , wherein the linear equation solver is applied to a linear equation representing two opposite-connected anchors on one of the first UI element, the second UI element, or the third UI element. 13. The method of claim 12 , wherein the linear equation solver spreads the error equally among the two opposite-connected anchors. 14. The method of claim 12 , wherein the linear equation solver spreads the error such that more error is applied to a first anchor of the two opposite-connected anchors than to a second anchor of the two opposite-connected anchors. 15. A non-transitory computer readable storage medium is provided that includes instructions that, when executed by at least one processor, cause the at least one processor to: determine a plurality of connections involving at least a first user interface (UI) element, a second UI element, and a third UI element, wherein the plurality of connections include at least a first layout constraint and a second layout constraint, wherein the first layout constraint defines a spatial relationship between the first UI element and the second UI element, and wherein the second layout constraint defines a spatial relationship between the second UI element and the third UI element; determine that the plurality of connections result in an error in positioning of the first UI element, the second UI element, or the third UI element; determine a ratio of an amount of error to spread to the first layout constraint to an amount of error to spread to the second layout constraint; and adjust the first layout constraint and the second layout constraint to spread the error to the first layout constraint and the second layout constraint, wherein the error is spread according to the determined ratio. 16. A system, comprising: one or more processors; a computer-readable storage medium coupled to the one or more processors, the computer-readable storage medium including instructions that, when executed by the one or more processors, cause the one or more processors to: determine a plurality of connections involving at least a first user interface (UI) element, a second UI element, and a third UI element, wherein the plurality of connections include at least a first layout constraint and a second layout constraint, wherein the first layout constraint defines a spatial relationship between the first UI element and the second UI element, and wherein the second layout constraint defines a spatial relationship between the second UI element and the third UI element; determine that the plurality of connections result in an error in positioning of the first UI element, the second UI element, or the third UI element; determine a ratio of an amount of error to spread to the first layout constraint to an amount of error to spread to the second layout constraint; and adjust the first layout constraint and the second layout constraint to spread the error to the first layout constraint and the second layout constraint, wherein the error is spread according to the determined ratio. 17. The system of claim 16 , wherein the instructions cause the one or more processors to determine the plurality of connections involving the first UI element, the second UI element, and the third UI element by: providing a layout application for developing a UI, the layout application including a representation of a page that allows UI elements to be visually positioned relative to each other; and receiving, via the layout application, user input indicating the plurality of connections involving the first UI element, the second UI element, and the third UI element. 18. The system of claim 17 , wherein the instructions cause the one or more processors to provide a visual indication of the first adjusted layout constraint and the second adjusted layout constraint in the layout application. 19. The system of claim 16 , wherein the instructions cause the one or more processors to generating a final layout of a UI based on the first adjusted layou

Assignees

Inventors

Classifications

  • Formatting, i.e. changing of presentation of documents (automatic justification G06F40/189; automatic line break hyphenation G06F40/191) · CPC title

  • Creating or editing images; Combining images with text · CPC title

  • Constraint-based CAD · CPC title

  • Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM] (optical proximity correction [OPC] design processes G03F1/36) · CPC title

  • Floor-planning or layout, e.g. partitioning or placement · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12147753B2 cover?
Aspects of the subject technology relate to systems and methods for constraints-based layout and control of user interface (UI) elements. The system receives a first user input indicating an instruction to position a first UI element on a page of the layout application. The system receives a second user input indicating an instruction to position a second UI element on the page. The system rece…
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification G06F8/34. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 19 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).