/elements/blockkit/builder in your application.
Interface Overview
The builder uses a three-panel layout:Toolbar
The toolbar at the top provides:- Undo / Redo — Ctrl+Z / Ctrl+Y with 50-step history
- Show Outlines — Toggle dashed borders to see block structure and nesting
- Preview — Switch to live preview mode (interactive components become functional)
- Replacements — Open the replacement variables editor
- View JSON — Export the current layout as JSON
- Clear Editor — Remove all blocks and start fresh
Block Library
Blocks are organized into categories. Click a block to add it to the canvas, or drag it to a specific position.Layout
- Section — Container for grouping content elements
- Repeater — Repeat template content for each item in an array (see Repeater docs)
- Remote Block — Load BlockKit content from a URL with auto-refresh, loader, and fallback (see Remote Block docs)
Column Layouts
10 predefined column configurations:- 1 Column (100%)
- 2 Columns: 50/50, 66/33, 33/66, 75/25, 25/75
- 3 Columns: 33/33/33, 25/25/50, 50/25/25
- 4 Columns: 25/25/25/25
Content
- Heading — Title text (H1–H4)
- Text — Paragraph or body text
- Alert — Info, success, warning, or error notice
- Dynamic Block — Placeholder for dynamic content replacements
Lists
- Bullet List — Unordered list with bullet points
- Ordered List — Numbered list
- Step List — Sequential instructional steps
- List Item — Item within a list
Navigation
- Wizard — Multi-step guided workflow
- Wizard Step — A step within a wizard
Interactive
- Button — Interactive button that triggers an action
- Actions Row — Horizontal row of action buttons
- Form — Interactive form with fields and submit
Properties Panel
When a block is selected on the canvas, its properties appear in the right panel for editing. Changes apply immediately to the canvas.Common Properties
Most blocks expose:- Block-specific fields (text, level, severity, etc.)
- Block ID — Optional unique identifier
Interactive Block Properties
Button properties:- Label, Action ID, Value, Style (Primary/Danger/Default)
- Action URL, Link URL
- Confirm dialog settings
- Action URL (shared default for all buttons)
- Block ID
- Button management (add, remove, reorder)
- Action URL, HTTP Method (POST/PUT/PATCH)
- Submit Button Text, Cancel Button Text
- Layout (Stacked/Columns/Inline)
- Visual Form Field Designer (see below)
Column Layout Properties
- Variant — Switch between column configurations
- Gap — Spacing between columns
- Margin / Padding — Outer and inner spacing
- Vertical Alignment — Stretch, top, center, or bottom
- Min Height — Minimum container height
- Per-column: Width, Min/Max Width, Padding, Vertical Align
Wizard Properties
- Step list — All steps with numbered titles
- Reorder — Move steps up/down with arrow buttons
- Add Step — Create new steps with default content
- Remove Step — Delete steps (minimum 1)
- Step selector — Dropdown to show one step at a time in the editor
- Per-step: Title, Button Text, Acknowledgement checkbox text
Visual Form Field Designer
When a Form block is selected, the properties panel shows a visual field designer instead of a raw JSON Schema editor.Managing Fields
- Add Field — Click ”+ Add Field” to add a new form field
- Remove Field — Click the ✖ button next to any field
- Reorder Fields — Use ▲/▼ arrows to move fields up or down
- Edit Field — Click a field name to expand its configuration
Field Configuration
Each field has:Supported Field Types
Type-Specific Settings
Text / Textarea / Email / URL / Password:- Min Length, Max Length
- Min Value, Max Value
- Options editor with Label and Value pairs
- Add/remove options dynamically
- Default Value
Options Editor
For Dropdown and Radio Button fields, an options editor appears:- Each option has a Label (what the user sees) and a Value (what gets submitted)
- Click ”+ Add Option” to add new options
- Click ✖ to remove an option
Preview Mode
Click “Preview” in the toolbar to switch to live preview mode:- The editor panels hide and the full BlockKit layout is rendered
- Interactive components become functional (buttons are clickable, forms are fillable)
- Wizard navigation works with step buttons
- Click “Edit” to return to the editor
Debug Panel
In preview mode, click “Debug” to open the action debug panel:- Shows a terminal-themed log at the bottom of the page
- Displays action payloads when buttons are clicked or forms are submitted
- Each entry shows: timestamp, HTTP method, URL, and payload JSON
- Use “Clear” to reset the log
Replacements Editor
Click ” Replacements” to open the replacements panel:Form Mode
- Auto-detects all
{variable_name}patterns in text blocks andblock_replacementrefs - Two-column scrollable grid with variable name and value input
- Handles 30+ replacement variables cleanly
JSON Mode
- Toggle to a JSON textarea to bulk-paste replacement values:
- Click “Apply JSON” to load all values at once
- Invalid JSON shows an error message
- Switching back to Form mode preserves applied values
Tree View
Click “Structure” in the left panel to see the document tree:- Shows the full block hierarchy with proper nesting
- Displays block type icons and names
- Click a tree node to select that block on the canvas
- Selection syncs between tree view and canvas
Keyboard Shortcuts
Nesting Rules
The builder enforces nesting rules to ensure valid BlockKit structures:
Invalid drops show an error toast explaining why the block cannot be placed there.
JSON Export
Click “View JSON” to see the generated BlockKit JSON. This JSON can be:- Stored in a database
- Sent via API
- Used directly with the BlockRenderer component
