IP Library Granted Patent US 12694196
Granted Patent B2
US 12694196 · App. 18/596,525 · Granted Jul 28, 2026

Page layout configuration

Inventors: Jordan Scales (San Francisco, CA); Tyler Beauchamp (San Francisco, CA); Connie Fan (San Francisco, CA); John Ryan (San Francisco, CA); He Lu (San Francisco, CA)
Assignee: Notion Labs, Inc.
G06F40/106G06F3/04845G06F3/04847G06F40/166G06F40/186G06F40/197
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 12694196
App. No.
18/596,525
Granted
Jul 28, 2026
Kind
B2
Abstract

Described herein are approaches directed to building and/or managing page layout templates associated with pages having particular page types. Some implementations relate to approaches for hierarchical page layout templates. In some implementations, a graphical page layout template editor can be provided. In some implementations, a large language model can be used to generate page layout templates. Page layout templates can include one or more modules that can define the presence and organization of blocks within a page comprising one or more blocks. Some implementations provide for a news feed that can summarize changes to pages within a workspace, teamspace, database, or other context.

Claims (61)

1 . A system comprising:

a processor;

a non-volatile memory;

a page layout template editor configured to enable a user to generate a page layout template for a first page type, the page layout template editor comprising:

a commit user interface element;

a page layout module pane comprising one or more modules;

a configuration pane; and

an editing canvas,

wherein the page layout template editor is configured to generate the page layout template by:

receiving a module in the editing canvas from the page layout module pane, wherein the editing canvas receives the module in response to the user performing at least one of: dragging the module from the page layout module pane to the editing canvas or selecting the module in the page layout module pane,

wherein the module defines a presentation mode of a block of a page having the first page type;

displaying the module in the editing canvas;

receiving a selection of the module in the editing canvas;

displaying the configuration pane,

wherein the configuration pane is configured to display one or more configuration options associated with the selected module;

receiving a user input defining one or more of the one or more configuration options;

updating the display of the module in the editing canvas based on the selected module in the editing canvas based on the user input;

receiving a user selection of the commit user interface element;

saving the generated page layout template as a child page layout template associated with a parent page layout template, the child page layout template configured to inherit layout information from the parent page layout template, wherein saving comprises:

creating a new page layout template including the selected module;

determining a set of modules included in the parent page layout template;

computing a page layout for the new page layout template using the selected module, the set of modules in the parent page layout template, and a presentation order defined by the child page layout template; and

saving the new page layout template; and

associating the new page layout template with a scope, such that when a user requests a page associated with the scope and having the page type, the system generates the requested page using the new page layout template,

wherein the scope is a grouping of hierarchically organized blocks of a render tree.

2 . The system of claim 1 , wherein the page layout template editor is further configured to: receive a user selection of the module on the editing canvas; display one or more controls comprising a delete button; receive a user selection of the delete button; and remove the module from the editing canvas.

3 . The system of claim 1 , wherein the page layout template editor further comprises a selector for selecting content to display in the editing canvas, wherein the page layout template editor is further configured to: receive a user selection of content to display in the editing canvas, wherein the selected content comprises one or more of: content selected from an existing page having the first page type, content generated by a generative machine learning model based on existing content in one or more pages, or placeholder content; and display the selected content in the editing canvas.

4 . The system of claim 3 , wherein the selected content comprises content generated by the generative machine learning model, wherein to generate the content, the system is configured to: retrieve one or more existing pages from the scope; for each module of the page layout template: extract content from one or more blocks having a same type as a type of the module; generate a prompt for the generative machine learning model, wherein the prompt comprises at least a portion of the extracted content and an instruction to generate content based on the at least the portion of the extracted content; receive a response from the generative machine learning model, the response comprising the generated content; and display the generated content in the module.

5 . The system of claim 1 , wherein the page layout template editor is further configured to: receive an existing page having a second page type associated therewith; and display the existing page in the editing canvas.

6 . The system of claim 5 , wherein the first page type is a same page type as the second page type.

7 . The system of claim 5 , wherein the first page type is different from the second page type.

8 . The system of claim 1 , wherein the new page layout template is a new version of an existing page layout template, wherein the system is further configured to: receive a request from a user to revert the page layout template to a previous version of the page layout template; and update a page layout template reference of the scope from the new page layout template to the previous version of the page layout template.

9 . The system of claim 1 , wherein the scope comprises at least one of: a workspace, a teamspace, a database, or a collection of pages, wherein the workspace is a root node of a render tree, wherein the teamspace is a node of the render tree hierarchically below the workspace, wherein the database is a node of the render tree hierarchically below the workspace, wherein the database comprises one or more pages, and wherein the collection of pages comprises one or more pages.

10 . The system of claim 1 , wherein the page layout template editor is further configured to: determine, based on the scope and the first page type, a number of pages affected by the page layout template; and display an indication of the number of pages on the commit user interface element.

11 . The system of claim 1 , wherein the one or more modules comprise a properties module, wherein the properties module includes at least one property selected from: an owner, a status, a tag, a verification status, a creation time, an edit time, a department, a cost estimate, or a review stage.

12 . The system of claim 1 , wherein the first page type comprises one of: a task, a meeting, a wiki, a project, or a document.

13 . A computer-implemented method for generating a page layout template using a graphical user interface, the computer-implemented method comprising:

receiving a page layout template edit request from a user;

displaying the page layout template in a page layout template editor,

wherein the page layout template editor comprises:

an editing canvas;

a page layout module pane comprising one or more modules,

wherein the one or more modules define a presentation mode of a block of a page associated with the page layout template;

a configuration pane; and

a commit user interface element;

receiving one or more changes from the user,

wherein the one or more changes comprise at least one of: adding a module to the page layout template, removing a module from the page layout template, rearranging a module in the page layout template, or modifying a configuration of a module in the page layout template;

displaying, to the user, a preview of the page layout template in the editing canvas;

receiving, via the commit user interface element, a commit command from the user;

saving the generated page layout template as a child page layout template associated with a parent page layout template, the child page layout template configured to inherit layout information from the parent page layout template, wherein saving comprises:

creating a new page layout template;

determining a set of modules included in the parent page layout template;

computing a page layout for the new page layout template using the set of modules in the parent page layout template, and a presentation order defined by the child page layout template; and

associating the new page layout template with one or more pages.

14 . The computer-implemented method of claim 13 , further comprising: receiving a user selection of a module on the editing canvas; displaying one or more controls comprising a delete button; receiving a user selection of the delete button; and removing the module from the editing canvas.

15 . The computer-implemented method of claim 13 , wherein the page layout template editor further comprises a selector for selecting content to display in the editing canvas, wherein the computer-implemented method further comprises: receiving a user selection of content to display in the editing canvas, wherein the selected content comprises one or more of: content selected from an existing page having a first page type, content generated by a generative machine learning model based on existing content in one or more pages, or placeholder content; and displaying the selected content in the editing canvas.

16 . The computer-implemented method of claim 15 , wherein the selected content comprises content generated by the generative machine learning model, wherein to generate the content, the computer-implemented method further comprises: retrieving one or more existing pages from a scope, wherein the scope is a grouping of hierarchically organized blocks of a render tree; for each module of the page layout template: extracting content from one or more blocks having a same type as a type of the module; generating a prompt for the generative machine learning model, wherein the prompt comprises at least a portion of the extracted content and an instruction to generate content based on the at least the portion of the extracted content; receiving a response from the generative machine learning model, the response comprising the generated content; and displaying the generated content in the module.

17 . The computer-implemented method of claim 13 , wherein the new page layout template is a new version of an existing page layout template, and wherein the computer-implemented method further comprises: receiving a request from a user to revert the new page layout template to a previous version of the page layout template; and updating a page layout template reference of the one or more pages from the new page layout template to the previous version of the page layout template.

18 . The computer-implemented method of claim 13 , wherein the one or more pages are included in a scope, wherein the scope is a grouping of hierarchically organized blocks of a render tree, wherein the scope is selected from at least one of: a workspace, a teamspace, a database, or a collection of pages, wherein the workspace is a root node of a render tree, wherein the teamspace is a node of the render tree hierarchically below the workspace, wherein the database is a node of the render tree hierarchically below the workspace, wherein the database comprises one or more pages, and wherein the collection of pages comprises one or more pages.

19 . The computer-implemented method of claim 13 , further comprising: determining a number of pages affected by the page layout template; and displaying an indication of the number of pages on the commit user interface element.

20 . The computer-implemented method of claim 13 , wherein the one or more modules comprise a properties module, wherein the properties module includes at least one property selected from: an owner, a status, a tag, a verification status, a creation time, an edit time, a department, a cost estimate, or a review stage.