Modals¶
Historical Pages documentation. Centrali Pages was retired in v8.0.0 (CEN-1474). The builder, hosted runtime and Pages SDK/MCP tools are unavailable. This page preserves past behavior, not current setup instructions. See the capability register.
Overview¶
Modals are overlay dialogs that appear on top of the current page. Use them for confirmation prompts, detail previews, quick-edit forms, or any content that should appear in context without navigating away.
Modals are configured entirely from the page editor — no frontend code required. They work on all four page types (list, detail, form, and dashboard).
Adding a Modal¶
In the page editor, add a block with type Modal from the Content block category. Modal blocks are invisible by default — they only appear when triggered by an action.
Configuration¶
| Field | Description |
|---|---|
| Title | Header text displayed at the top of the dialog |
| Size | sm (~384px), md (~512px, default), lg (~768px), or fullscreen (viewport width) |
| Content type | How the content is rendered: Static HTML, Markdown, or Data-Bound HTML |
| Content | The body content, edited in a code editor |
| Actions | Optional buttons in the modal footer |
Content Types¶
Static HTML — raw HTML rendered as-is. All content is sanitized (scripts, iframes, and event handlers are stripped). <style> tags are allowed for custom styling.
Markdown — parsed as GitHub Flavored Markdown (tables, task lists, strikethrough supported), then sanitized. Write standard Markdown syntax in the content editor.
Data-Bound HTML — HTML with {{fieldName}} placeholders that are replaced with live data from a connected collection. Requires a data source to be configured on the modal block. Supports dot notation ({{data.status}}). Records are flattened, so nested fields like data.name are also accessible as {{name}}. Unresolved placeholders render as empty strings. Output is sanitized before display.
Triggering a Modal¶
Use the open-modal action type on any block to open a modal. Set the action's targetRef to the modal block's ID.
Common patterns:
- Table row action → open a detail preview modal
- Delete button → open a confirmation modal
- "Add New" button → open a modal with a form or instructions
Closing a Modal¶
Modals can be closed in three ways:
close-modalaction — add a button inside the modal (e.g., "Cancel") with action typeclose-modalandtargetRefset to the modal's ID- Escape key — pressing Escape closes the topmost modal
- Close button — the X button in the modal header
Actions Inside Modals¶
Modal blocks support these action types in their footer:
| Action Type | Purpose |
|---|---|
close-modal | Close this or another modal |
open-modal | Open another modal (nesting supported) |
invoke-trigger | Call an HTTP trigger |
navigate-to-page | Navigate to another page |
start-orchestration | Start an automation workflow |
All modal actions use button activation (not row-click or form-submit).
Examples¶
Delete Confirmation¶
- Add a data-table block with a row action: type
open-modal, targetRef → your confirmation modal's ID - Add a modal block:
- Title: "Confirm Delete"
- Size:
sm - Content type: Markdown
- Content:
Are you sure you want to delete this record? This action cannot be undone. - Actions:
- "Cancel" →
close-modal - "Delete" →
invoke-trigger(pointing to your delete HTTP trigger)
- "Cancel" →
Record Preview¶
- Add a data-table block with a row action: type
open-modal - Add a modal block:
- Size:
lg - Content type: Data-Bound HTML
- Data source: same collection as the table
- Content:
- Size:
The modal renders a formatted view of the record without leaving the page.
Nested Modals¶
A modal's actions can include open-modal to open a second modal. For example, a detail preview modal could have a "Delete" button that opens a smaller confirmation modal on top of it.