apps/design-system/content/docs/ui-patterns/layout.mdx
The Page pattern consists of three main components that work together to create consistent page layouts: PageContainer, PageHeader, and PageSection. These components provide a structured approach to building pages with consistent spacing, max-widths, and content organization.
Settings pages are used for configuration and preference management. They follow a single-column layout with default widths to keep content focused and readable. Examples include project settings or auth sessions.
PageHeader with size="default"PageContainer with size="default"PageSection for organizing settings into logical groups<ComponentPreview name="page-layout-settings" description="Settings page layout with default widths" peekCode wide />
List pages display collections of objects like tables, triggers, or functions. These pages use larger widths to accommodate wide content like data tables. Examples include database triggers, database functions or org team members.
PageHeader with size="large"PageContainer with size="large"PageSection to wrap list contentTable and List Actions:
PageSectionAside or PageHeaderAside for table actions when filters are present.PageHeaderAside or PageSectionAside as appropriate.<ComponentPreview name="page-layout-list" description="List page layout with search and filters - actions aligned with search" peekCode wide />
<ComponentPreview name="page-layout-list-simple" description="Simple list page layout without filters - actions in PageHeaderAside" peekCode wide />
Full-page experiences like the table editor, cron jobs, and edge functions require maximum screen real-estate and so make use of "full" size containers.
PageHeader with size="full"PageContainer with size="full"Detail pages display dense or lengthy content split into multiple sections. The horizontal orientation allows for better information hierarchy and context. Examples include organisation billing or project infrastructure.
PageHeader with size="large"PageContainer with size="large"PageSection with orientation="horizontal" to show summary alongside content<ComponentPreview name="page-layout-detail" description="Detail page layout with horizontal sections for dense content" peekCode wide />